我想加载一个之前从 Eclipse 插件环境中持久化的 EMF 模型资源。我尝试如下。
// obtain a new resource set
ResourceSet resSet = new ResourceSetImpl();
// get the resource
resSet.getResource(URI.createURI(location), true);
location
是相对于平台的路径,例如 platform:/resource/Project/default.mymodel
当我尝试使用获取资源时,URI.createURI(...)
我得到ClassCastException
:“MymodelFactoryImpl 无法转换为 org.eclipse.emf.ecore.resource.Resource$Factory”。
我无法解释这一点。有人能帮帮我吗?
我已经试过了URI.createFileURI(location)
。这会导致IllegalArgumentException
:“无效的相对路径名”。
问候
堆栈跟踪如下所示。java.lang.ClassCastException:de.uka.ipd.sdq.pcm.usagemodel.impl.UsagemodelFactoryImpl 无法在 org.eclipse.emf.ecore.resource.impl 中转换为 org.eclipse.emf.ecore.resource.Resource$Factory .ResourceFactoryRegistryImpl.convert(ResourceFactoryRegistryImpl.java:94) 在 org.eclipse.emf.ecore.resource.impl.ResourceSetImpl$2.delegatedGetFactory(ResourceSetImpl.java:458) 在 org.eclipse.emf.ecore.resource.impl.ResourceFactoryRegistryImpl。 getFactory(ResourceFactoryRegistryImpl.java:145) at org.eclipse.emf.ecore.resource.impl.ResourceFactoryRegistryImpl.getFactory(ResourceFactoryRegistryImpl.java:86) at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.createResource(ResourceSetImpl. java:431) 在 org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandCreateResource(ResourceSetImpl.java: