linux上的EclipseEcore编辑器异常

linux上的EclipseEcore编辑器异常,linux,eclipse,ecore,Linux,Eclipse,Ecore,在linux上的eclipse中打开ecore文件时遇到问题。堆栈看起来像 java.lang.IllegalArgumentException: The feature 'fbiz' is not a valid feature at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eStructuralFeature(BasicEObjectImpl.java:733) at org.eclipse.emf.ecore.impl.Bas

在linux上的eclipse中打开ecore文件时遇到问题。堆栈看起来像

java.lang.IllegalArgumentException: The feature 'fbiz' is not a valid feature
    at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eStructuralFeature(BasicEObjectImpl.java:733)
    at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eObjectForURIFragmentSegment(BasicEObjectImpl.java:551)
    at org.eclipse.emf.ecore.resource.impl.ResourceImpl.getEObject(ResourceImpl.java:766)
    at org.eclipse.emf.ecore.resource.impl.ResourceImpl.getEObject(ResourceImpl.java:742)
    at org.eclipse.emf.ecore.xmi.impl.XMLHandler.setValueFromId(XMLHandler.java:2850)
    at org.eclipse.emf.ecore.xmi.impl.XMLHandler.setAttribValue(XMLHandler.java:2755)
    at org.eclipse.emf.ecore.xmi.impl.SAXXMIHandler.handleObjectAttribs(SAXXMIHandler.java:79)
    at org.eclipse.emf.ecore.xmi.impl.XMLHandler.createObjectFromFactory(XMLHandler.java:2229)
    at org.eclipse.emf.ecore.xmi.impl.XMLHandler.createObjectFromTypeName(XMLHandler.java:2132)
    at org.eclipse.emf.ecore.xmi.impl.XMLHandler.createObject(XMLHandler.java:2067)
    at org.eclipse.emf.ecore.xmi.impl.XMIHandler.createObject(XMIHandler.java:128)
    at org.eclipse.emf.ecore.xmi.impl.XMLHandler.handleFeature(XMLHandler.java:1876)
    at org.eclipse.emf.ecore.xmi.impl.XMLHandler.processElement(XMLHandler.java:1030)
    at org.eclipse.emf.ecore.xmi.impl.XMIHandler.processElement(XMIHandler.java:81)
    at org.eclipse.emf.ecore.xmi.impl.XMLHandler.startElement(XMLHandler.java:1008)
    at org.eclipse.emf.ecore.xmi.impl.XMLHandler.startElement(XMLHandler.java:719)
    at org.eclipse.emf.ecore.xmi.impl.XMIHandler.startElement(XMIHandler.java:163)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:509)
    at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:182)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1343)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2786)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:648)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:332)
    at org.eclipse.emf.ecore.xmi.impl.XMLLoadImpl.load(XMLLoadImpl.java:175)
...
如果我重新启动eclipse,它可以加载并显示第一个ecore文件,但当我尝试加载另一个ecore文件时,它会给出相同的异常


我用Luna和Mars版本以及最新的ecore和各种jre尝试过这个方法,但问题是一样的。谷歌搜索了很多,但没有回答。根据我的经验,它看起来像java中的内存问题,因为它有时会工作。有关于如何修复它的提示吗?

它看起来很像您的ecore模型拥有一个非法属性(“fbiz”属性)。我很确定,'fbiz'不是Ecore的元属性。是的,它应该是“ofbiz”,并且它不依赖于Ecore文件,当它抛出异常时,它总是“吃”第一个符号。但有时它是有效的,所以很明显问题出在另一个地方。哦,好吧,这是不同的,你们不尝试打开一个ecore文件,而是一个符合你们的元模型(定义为ecore模型)的模型。EMF说的是,在xmi模型中,有一个名为“fbiz”的特性,但在元模型中找不到它。尝试将您的模型作为文本文件打开,识别“fbiz”关系,或者删除它,或者将其名称更改为“ofbiz”(有风险,但如果元模型没有太多发展,可能会起作用)。无论如何,它看起来像是模型和元模型之间的“去同步”,实际上文本(xml,ecore)文件中只有“ofbiz”字符串,所以没有“fbiz”字符串。也就是说,文件是正确的,问题出在外部某处。有时,在eclipse的新启动期间,该文件工作正常。我想您的元模型是作为静态模型部署的。也许您在eclipse启动期间在同一URI上注册了同一元模型的多个版本,并且按照顺序,一个元模型起主导作用?