2013-03-20 66 views
1

我正在嘗試使用XPath通過EclipseLink JAXB (MOXy)映射XML文檔。使用包含CDATA的XML配置MOXy的@XmlPath

<![CDATA[Jill's Box Company]]> 

我使用的EclipseLink-2.3.0罐子讓我的應用程序中的XPath映射:但是,當XML包含CDATA標記示例中遇到的問題。 並使JAXB使用此實現我創建一個jaxb.properties文件,其中包含以下內容:

javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory 

的XPath只能這樣,否則該應用程序甚至沒有拿起註釋@XmlPath

現在在運行和XML通過和反編組方法是如下拋出一個空指針錯誤:

java.lang.NullPointerException 
    at org.eclipse.persistence.oxm.record.UnmarshalRecord.startCDATA(UnmarshalRecord.java:1035) 
    at org.eclipse.persistence.internal.oxm.record.XMLReader$LexicalHandlerWrapper.startCDATA(XMLReader.java:226) 
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startCDATA(AbstractSAXParser.java:625) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:487) 
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808) 
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737) 
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119) 
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205) 
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522) 
    at weblogic.xml.jaxp.WebLogicXMLReader.parse(WebLogicXMLReader.java:133) 
    at weblogic.xml.jaxp.RegistryXMLReader.parse(RegistryXMLReader.java:173) 
    at org.eclipse.persistence.internal.oxm.record.XMLReader.parse(XMLReader.java:147) 
    at org.eclipse.persistence.internal.oxm.record.SAXUnmarshaller.unmarshal(SAXUnmarshaller.java:713) 
    at org.eclipse.persistence.internal.oxm.record.SAXUnmarshaller.unmarshal(SAXUnmarshaller.java:286) 
    at org.eclipse.persistence.internal.oxm.record.SAXUnmarshaller.unmarshal(SAXUnmarshaller.java:260) 
    at org.eclipse.persistence.internal.oxm.record.SAXUnmarshaller.unmarshal(SAXUnmarshaller.java:505) 
    at org.eclipse.persistence.oxm.XMLUnmarshaller.unmarshal(XMLUnmarshaller.java:594) 
    at org.eclipse.persistence.jaxb.JAXBUnmarshaller.unmarshal(JAXBUnmarshaller.java:269) 
    at com.jbhunt.lib.mgintegrationutils.utils.JAXBUtils.unmarshal(JAXBUtils.java:67) 
    at com.jbhunt.biz.mgarListener.mq.converter.MgarListenerMQMessageParser.getMasterARStagingVo(MgarListenerMQMessageParser.java:51) 
    at com.jbhunt.biz.mgarListener.mq.MgarListenerMessageConsumerImpl.onMessage(MgarListenerMessageConsumerImpl.java:62) 
    at com.jbhunt.biz.mgarListener.mq.JMSMessageProcessor.receiveAndProcessMessage(JMSMessageProcessor.java:106) 
    at com.jbhunt.biz.mgarListener.thread.MessageProcessorThread.run(MessageProcessorThread.java:46) 
    at java.lang.Thread.run(Thread.java:662) 
+0

「XPath來通過解析XML JAXB「 - 這些詞在按順序排列在一起時沒有任何意義。也許你應該發佈你的*真實*代碼,那麼也許有人可以幫助你。 – parsifal 2013-03-20 21:29:01

+0

你可以發佈你的對象模型嗎?另外我看到你正在使用EclipseLink 2.3.0,如果你能夠升級,當前版本是2.4.1:http://www.eclipse.org/eclipselink/downloads/ – 2013-03-21 01:34:30

+1

嗨,Blaise,我將eclipse版本更新到2.4。 1解決了我面臨的CDATA問題。現在它的一切都很好。 – user1886053 2013-03-21 05:33:19

回答

0

UPDATE

布萊斯嗨,我更新了Eclipse版本2.4.1並解決了我所面臨的CDATA問題 。現在它的一切都很好。

我很高興聽到一切正在工作。下面是關於莫西在EclipseLink的2.4有什麼新的文章:


由於您使用的EclipseLink 2.3.0,相信你打下面的錯誤,這是固定在EclipseLink 2.3.1。

的EclipseLink目前是2.4.1版本,我建議升級到,如果你可以: