【发布时间】:2016-03-08 11:29:46
【问题描述】:
目前我已经使用 Eclipse RCP 构建了一个应用程序。 应用程序可以创建多个产品,将它们保存在一个 XML 文件中,该文件在应用程序中加载并显示在表格中。 我已经使用 JAXB 来编组和解组 XML 文件。
当我想部署或导出应用程序时会出现当前问题。 在日志文件中探索应用程序后,我收到此错误:
[Command-Thread]1:CMD_TABLE_CHANGE_PRODUCT_DATA -> 命令线程已启动 CMD_TABLE_CHANGE_PRODUCT_DATA 加载产品数据 从 XML 文件加载数据:C:/temp/myCompanyProductSuite/configuration/org.eclipse.osgi/2/0/.cp/appdata/products.xml 异常:javax.xml.bind.UnmarshalException:无法创建 com.myCompany.app.model.objects.Product 的实例 - 有关联的例外: [java.lang.reflect.InvocationTargetException] com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(UnmarshallingContext.java:740) com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:262) com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.createInstance(UnmarshallingContext.java:705) com.sun.xml.bind.v2.runtime.unmarshaller.StructureLoader.startElement(StructureLoader.java:186) com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:576) com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:555) com.sun.xml.bind.v2.runtime.unmarshaller.SAXConnector.startElement(SAXConnector.java:168) com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(未知来源) com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(未知来源) com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(未知来源) com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(未知来源) com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(未知来源) com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(未知来源) com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(未知来源) com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(未知来源) com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(未知来源) com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(未知来源) com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(未知来源) com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:258) com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:229) javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(未知来源) javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(未知来源) com.myCompany.server.ProductServer.loadProductsFromXMLFile(ProductServer.java:188) com.myCompany.server.ProductServer.loadProductData(ProductServer.java:106) com.myCompany.server.ProductServer.loadProductServerData(ProductServer.java:68) com.myCompany.server.ProductServer.getApplicationProducts(ProductServer.java:83) com.myCompany.app.gui.parts.model.ProductViewerModel.getApplicationProducts(ProductViewerModel.java:65) com.myCompany.app.gui.parts.ProductViewerPart$ProductViewerPartController.handleControlledCommand(ProductViewerPart.java:261) com.myCompany.app.mvc.MVCController$1.run(MVCController.java:106) 从 XML 文件加载数据:解组结束
我并没有在互联网上真正找到有用的答案。
我只能向您保证,我已将 JAXB 的 3 个 JAR 文件(jaxb-api、jaxb-core、jaxb-impl)包含在插件清单中以进行部署。
Bundle-ClassPath: .,
properties/,
appdata/,
lib/log4j.jar,
lib/jaxb-2.2.11/jaxb-api.jar,
lib/jaxb-2.2.11/jaxb-impl.jar,
lib/jaxb-2.2.11/jaxb-core.jar,
lib/jaxb-2.2.11/jaxb-xjc.jar
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Bundle-ActivationPolicy: lazy
你能告诉我我能做些什么来解决这个问题吗?
最好的问候, 凯斯
【问题讨论】:
标签: xml jaxb eclipse-rcp