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();

它在 wfFactory 抛出一个,因为 wfPackage 为空。我的 NS URI 是“http://www.sg/model”(此 URL 不存在)。

4

2 回答 2

0

NS URI 表示命名空间 URI。那是java中包的xml等价物。显然 EMF 运行时无法加载与您指定的 URI 关联的包。检查您指定的 URI 是否正确。

于 2010-11-01T01:12:07.453 回答
0

它在 wfFactory 抛出一个,因为 wfPackage 为空。

如果 NPE 真的被扔到你指示的那一行,它就不会发生,因为wfPackageis null。事实上,它必须表明registrynull

我的 NS URI 是“http://www.sg/model”(此 URL 不存在)。

那应该没关系。NS URI 只是一个“唯一名称”,表示模型的 XML 命名空间。它不一定是可解决的。

于 2010-11-01T04:01:59.407 回答