Exception :
PackageNotFound
Reasons :
EMF package 没有注册,
Solution :
需要在配置文件中增加类似代码:
<extension point="org.eclipse.emf.ecore.generated_package">
<package
uri = "http:///com/companyname/projectname/modulename/model.ecore"
class = "com.companyname.projectname.modulename.model.ModelPackage" />
</extension>
如果是在其它的部分调用EMF代码,可以在resource.load之前增加类似代码:
//-->
ModelPackage modelInstance = ModelPackage.eINSTANCE;
Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE;
Map m = reg.getExtensionToFactoryMap();
m.put("*", new XMIResourceFactoryImpl());
ResourceSet rsSet = new ResourceSetImpl();
rsSet.setResourceFactoryRegistry(reg);
//<--
...
resource.load
load model

博客主要围绕EMF的PackageNotFound异常展开。分析了异常原因是EMF package未注册,给出了解决方案,即在配置文件中添加特定代码,若在其他部分调用EMF代码,可在resource.load前添加相关代码来解决问题。
5295

被折叠的 条评论
为什么被折叠?



