我试图为 Java 的 JAXB 和 Web 服务做一些示例。在我的代码中,我想显示 XML 文件中的一些客户信息。我正在使用 JAXB 工具来读取/创建 XML,并将值分配给客户对象。当我尝试显示此客户类的值时,我得到空值。实际上,用于读取和显示客户信息的代码正在运行,但是当我在 Web 服务中使用它时,它无法正确显示。顺便说一句,我可以在 Web 服务中正确创建 XML,但是阅读是个问题。这是我的代码:
执行
旧版本 @Override public void displayXML(Customer customer) {
try {
File file = new File("C:\\Users\\ahmet.tanakol\\Desktop\\myfile.xml");
JAXBContext jaxbContext = JAXBContext.newInstance(Customer.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
customer = (Customer) jaxbUnmarshaller.unmarshal(file);
customer.setAge(customer.getAge());
customer.setId(customer.getId());
customer.setName(customer.getName());
} catch (JAXBException e) {
e.printStackTrace();
}
}
新版本(正确的一个)
public String displayXML() {
String msg = "";
try {
File file = new File("C:\\Users\\ahmet.tanakol\\Desktop\\myfile.xml");
JAXBContext jaxbContext = JAXBContext.newInstance(Customer.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
Customer customer = (Customer) jaxbUnmarshaller.unmarshal(file);
msg += "Customer ID: " + customer.getId() + "Customer Age: " + customer.getAge() + "Customer Name: " + customer.getName();
} catch (JAXBException e) {
e.printStackTrace();
}
return msg;
}
以及我运行程序时的结果
客户 ID:100 客户年龄:29 客户名称:ahmet Hello World JAX-WS ahmet