有没有人让 EclipseLink MOXy(我正在使用 eclipselink 2.1.0)与 Java 5 一起工作?每当我尝试解组时,我在 startCDATA() 方法中的 org.eclipse.persistence.oxm.record.UnmarshalRecord 中得到一个空指针异常(xPathNode 为空)。完全相同的代码和 XML 在 Java6 中运行良好。
问问题
1423 次
1 回答
1
我是 MOXy 的技术主管。您能否提供有关您的用例的堆栈跟踪和更多详细信息?
有关 MOXy 的更多信息,请查看:
重新更新:
我无法最终重现这一点。我正在使用以下环境。您是否有可以发送的测试用例(blaise.doughan@gmail.com)或指出我的不同之处?:
- 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>
于 2010-10-05T15:50:42.397 回答