【发布时间】:2019-01-11 01:20:02
【问题描述】:
我是 EMF 的新手,并尝试按如下方式保存 EMF 模型:-
public void saveData(File file, Device device) throws IOException {
final ResourceSet resourceSet = new ResourceSetImpl();
// Use XMI resource
System.out.println("file path in saveData " +file.getPath());
Resource xmiResource = resourceSet.createResource(URI.createFileURI(file.getPath() + ".xmi"));
xmiResource.getContents().add(device);
xmiResource.save(null);
// Use XML resource instead
Resource xmlResource = resourceSet.createResource(URI.createFileURI(file.getPath() + ".xml"));
xmlResource.getContents().add(device);
xmlResource.save(null);
}
但是在指定的路径中没有创建文件。加载代码是:-
public Device loadData(String fileName) {
final ResourceSet resourceSet = new ResourceSetImpl();
// Use XMI resource
Resource xmiResource;
System.out.println("filename" + fileName);
try {
xmiResource = resourceSet.getResource(URI.createFileURI(fileName + ".xmi"),true);
xmiResource.load(null);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
return (Device)xmiResource.getContents().get(0);
}
这给出了以下错误: java.lang.RuntimeException:无法为“文件:/C:/Users/Desktop/filename.xmi”创建资源;需要注册资源工厂
【问题讨论】:
-
这听起来像是你的问题:Eclipse Forum: "a registered resource factory is needed" outside the generated editor。如果它可以帮助其他人解决同样的问题,您可以尝试并为您的问题写下自己的答案。