eclipse - 异常加载 EMF 文件

标签 eclipse eclipse-emf eclipse-emf-ecore 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
}

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

最佳答案

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

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/

相关文章:

java - 为什么链接在我的基于 Xtext 的 DSL 中不起作用?

java - 在 Eclipse 中使用不同版本加载相同插件两次

java - 如何在编辑器操作中使用 EMF 命令?

java - Eclipse 调试变量到实例

javascript - Eclipse Luna 深色主题无法正确显示 JS

eclipse - 在 Eclipse 中调试 - ClassNotFoundException

java - 在 Eclipse 3.7 上安装 Android 开发工具的问题

java - 接口(interface)中赋值的语义是什么?

eclipse - 不同 Ecore 模型的引用 Ecore 模型路径