3

当我尝试加载 EMF 文件时,出现以下错误:

抛出异常:org.eclipse.emf.ecore.resource.Resource$IOWrappedException:找不到带有 uri 'blah/blah' 的包。(文件:/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
}

有谁知道为什么我会收到此错误?

4

1 回答 1

3

您需要先在包注册表中注册元模型的包:

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

例如,对于 UML 模型,它将是“UMLPackage.eNS_URI”等。在您的情况下,我想它必须类似于“OpmetaPackage.eNS_URI”和“OpmetaPackage.eINSTANCE”。

于 2012-11-10T07:28:07.733 回答