2012-11-10 128 views
3

當我嘗試加載一個EMF文件,我得到以下錯誤:異常加載EMF文件

Exception thrown: org.eclipse.emf.ecore.resource.Resource$IOWrappedException: Package with uri 'blah/blah' not found. (file:/C:/Temp/OPDiag1/blah1.opmeta, 2, 124)

我使用嘗試加載代碼:

opmetaFactory.eINSTANCE.eClass(); 
Resource opmmResource = resourceSet.createResource(URI.createURI(uri)); 
try { 
    opmmResource.load(null); 
    opd = (OPMetaModelDiagram) opmmResource.getContents().get(0); 
} catch(final IOException e) { 
    // log 
} 

沒有人有任何的想法爲什麼我得到這個錯誤?

回答

3

您需要先註冊在包註冊表元模型的包:

resourceSet.getPackageRegistry().put(BlahPackage.eNS_URI, BlahPackage.eINSTANCE); 

對於例如一個UML模型這將是「UMLPackage.eNS_URI」等。在你的情況,我想這一定像「OpmetaPackage.eNS_URI」和「OpmetaPackage.eINSTANCE」。