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 に答える