0

EMFを使用していくつかのクラスを生成しましたが、それらをインスタンス化したいと思います。モデルとメタモデルに関連付けられたxmiファイルを作成しました。ここで、モデルをインスタンスとしてプログラムにロードしたいのですが、NullPointerExceptionがスローされ続けます。

私のコードは次のとおりです。

Map<String,Object> registry = EPackage.Registry.INSTANCE;
String workflowURI = ExcelEditorPackage.eNS_URI;
System.out.println(workflowURI);
ExcelEditorPackage wfPackage = (ExcelEditorPackage) registry.get(workflowURI); //throw NPE here
ExcelEditorFactory wfFactory = wfPackage.getExcelEditorFactory();
Page workflow = wfFactory.createPage();

wfPackageがnullであるため、wfFactoryでをスローします。私のNSURIは「http://www.sg/model」です(このURLは存在しません)。

4

2 に答える 2

0

NS URI は名前空間 URI を意味します。これは、Java のパッケージに相当する xml です。EMF ランタイムは、指定した URI に関連付けられたパッケージを読み込めないようです。指定したURIが正しいか確認してください。

于 2010-11-01T01:12:07.453 に答える
0

wfPackage が null であるため、at wfFactory をスローします。

指定した行で NPE が実際にスローされた場合、 is であるため、発生することはありません。実際、それが であることを示す必要があります。wfPackagenullregistrynull

私の NS URI は「http://www.sg/model」です (この URL は存在しません)。

それは問題ではありません。NS URI は、モデルの XML 名前空間を示す単なる「一意の名前」です。解決可能である必要はありません。

于 2010-11-01T04:01:59.407 に答える