2010-10-05 88 views
2

有沒有人有EclipseLink MOXy(我使用eclipselink 2.1.0)與Java 5一起工作?每當我嘗試解組時,我在org.eclipse.persistence.oxm.record.UnmarshalRecord,startCDATA()方法(xPathNode爲空)中得到一個空指針異常。在Java6中,完全相同的代碼和XML非常出色。使用EclipseLink MOXy和Java 1.5

+0

我能夠通過努力來解組包含一個CDATA節點的XML文件一致地重現這一點,但沒有一個匹配的Java getter和setter。如果節點不是cdata節點,那麼一切工作正常,該節點剛剛跳過unmarshalling(這是我的預期)。這似乎只發生在Java5中,而不是Java6中。 – Frothy 2010-10-07 13:44:52

回答

1

我是MOXy的技術負責人。你能否提供堆棧跟蹤&關於你的用例的更多細節?

有關莫西更多信息,請查看:

回覆您的更新:

我一直無法重現這對我結束。我正在使用以下環境。你有一個測試用例,你可以發送([email protected])或指出我在做什麼?:不同

  • JDK:1.5.0_22
  • 的EclipseLink 2.1.0

以下模型:

package cdata; 

import javax.xml.bind.annotation.XmlRootElement; 

@XmlRootElement 
public class Customer { 

    private String firstName; 
    private String lastName; 

    public String getFirstName() { 
     return firstName; 
    } 

    public void setFirstName(String firstName) { 
     this.firstName = firstName; 
    } 

    public String getLastName() { 
     return lastName; 
    } 

    public void setLastName(String lastName) { 
     this.lastName = lastName; 
    } 

} 

演示代碼:

package cdata; 

import java.io.File; 

import javax.xml.bind.JAXBContext; 
import javax.xml.bind.Marshaller; 
import javax.xml.bind.Unmarshaller; 

public class Demo { 

    public static void main(String[] args) throws Exception { 
     JAXBContext jc = JAXBContext.newInstance(Customer.class); 

     Unmarshaller unmarshaller = jc.createUnmarshaller(); 
     Customer customer = (Customer) unmarshaller.unmarshal(new File("src/cdata/input.xml")); 

     Marshaller marshaller = jc.createMarshaller(); 
     marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); 
     marshaller.marshal(customer, System.out); 
    } 
} 

和xml:

<?xml version="1.0" encoding="UTF-8"?> 
<customer> 
    <firstName>Jane</firstName> 
    <middleName><![CDATA[<?xml version="1.0"?>]]></middleName> 
    <lastName>Doe</lastName> 
</customer> 
+0

感謝您快速查看此內容!我真的明白了。我通過Maven添加了EclipseLink,並沒有將可用於下載的版本中包含的必需依賴項添加到我的項目中(或者至少並非全部)。一旦我修好了,一切都像魅力一樣工作! – Frothy 2010-10-05 20:07:26

+0

看起來像我跳過槍調用這個固定的...我已經添加到原始帖子的細節。 – Frothy 2010-10-07 13:38:11

+0

我還沒有能夠重現這一點呢。我用我試過的東西更新了我的答案。你能提供我可能做的不同於你的任何細節嗎? – 2010-10-07 15:43:43

相關問題