当我尝试加载 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
}
有人知道我为什么会收到此错误吗?
最佳答案
您需要先在包注册表中注册元模型的包:
resourceSet.getPackageRegistry().put(BlahPackage.eNS_URI, BlahPackage.eINSTANCE);
例如,对于 UML 模型,它将是“UMLPackage.eNS_URI”等。在您的情况下,我想它必须类似于“OpmetaPackage.eNS_URI”和“OpmetaPackage.eINSTANCE”。
关于eclipse - 异常加载 EMF 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13320115/