gpt4 book ai didi

java - 在 Java 1.5 中使用 EclipseLink MOXy

转载 作者:行者123 更新时间:2023-11-30 11:57:23 27 4
gpt4 key购买 nike

有没有人使用 EclipseLink MOXy(我使用的是 eclipselink 2.1.0)来使用 Java 5?每当我尝试解码时,我都会在 org.eclipse.persistence.oxm.record.UnmarshalRecord 的 startCDATA() 方法(xPathNode 为空)中得到一个空指针异常。完全相同的代码和 XML 在 Java6 中运行得非常好。

最佳答案

我是 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>

关于java - 在 Java 1.5 中使用 EclipseLink MOXy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3865278/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com