【问题标题】:Error on load EMF model dynamically动态加载 EMF 模型时出错
【发布时间】:2017-03-02 18:42:53
【问题描述】:

我正在关注文章http://www.ibm.com/developerworks/library/os-eclipse-dynamicemf/ 来动态加载元模型。

我使用这个加载模型实例文档

ResourceSet load_resourceSet = new ResourceSetImpl();
// ResourceSet load_resourceSet2 = new ResourceSetImpl();

/*
 * Register XMI Factory impl ementation using DEFAULT_EXTENSION
 */
load_resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("*", //$NON-NLS-1$
            new XMIResourceFactoryImpl());

/*
 * Add bookStoreEPackage to package registry
 */
load_resourceSet.getPackageRegistry().put("http:///com.ibm.dynamic.example.bookstore.ecore",
        bookStoreEPackage);

//  load_resourceSet2.getResourceFactoryRegistry().getExtensionToFactoryMap().put("*", //$NON-NLS-1$
    // new XMIResourceFactoryImpl());

/*
 * Load the resources using the URI
 */
Resource modelo_esquerda = load_resourceSet
                .getResource(URI.createURI("./BookStore.xmi"), true);

但是,我收到了这条错误消息

Exception in thread "main" org.eclipse.emf.ecore.resource.impl.ResourceSetImpl$1DiagnosticWrappedException: org.eclipse.emf.ecore.xmi.ClassNotFoundException: Class 'BookStore' is not found or is abstract. (.\BookStore.xmi, 9, 34)

XMI 文件已存在于目录中。

我能做什么?

谢谢

【问题讨论】:

    标签: java eclipse eclipse-emf metamodel


    【解决方案1】:

    您可以尝试以下方法,对我来说效果很好:

    XMIResourceImpl resource = new XMIResourceImpl();
    File source = new File(xmlName.xml);
    resource.load(new FileInputStream(source), new HashMap<Object,Object>());
    Data data = (Data) resource.getContents().get(0);
    

    Data 是您的模型。

    【讨论】:

      猜你喜欢
      • 2010-11-16
      • 1970-01-01
      • 1970-01-01
      • 2011-03-21
      • 2015-05-06
      • 2015-05-30
      • 2015-01-12
      • 2021-01-13
      • 1970-01-01
      相关资源
      最近更新 更多