gpt4 book ai didi

java - 如何将xml反序列化为axis2生成的java对象

转载 作者:行者123 更新时间:2023-12-01 15:53:46 25 4
gpt4 key购买 nike

我使用 Eclipse 生成一个给定第三方 wsdl 的 java 客户端代码 stub 。客户端工作得很好,我能够访问网络服务并做我需要做的事情。

现在,我想编写一些无需连接到 Web 服务即可运行的单元测试。是否可以使用 axis2 堆栈中的某种机制将 xml 文件反序列化为 java 客户端 stub 代码中的 java 对象之一?

例如,客户端 stub 代码中的类之一是“Contact”。假设我有一个 xml 文件,它模仿通常在肥皂请求中找到的 xml。如何将其反序列化为 java Contact 对象?

我以前使用过 XMLBeans,但希望有一种更简单的方法,因为 java 客户端似乎已经在幕后的某个地方进行了反序列化?也许axis2有一个方法可以获取一 block xml并返回一个java对象?

更新:

我试过这个:

String packageName = Contact.class.getPackage().getName();
JAXBContext jc = JAXBContext.newInstance( packageName );

我明白了:

java.lang.AssertionError: javax.xml.bind.JAXBException: "com.sforce.soap._2006._04.metadata" doesnt contain ObjectFactory.class or jaxb.index

然后,我尝试了这个:

Contact c = new Contact();
JAXBContext jc = JAXBContext.newInstance( c.getClass() );

但是后来我得到了异常,Contact 类使用的类之一没有 no-arq 默认构造函数

我希望这将是一件快速而简单的事情,但是在我有时间完全理解 axis2 以及它如何使用 jaxb 之前,我将手动解析 xml。

最佳答案

这在 Axis 中称为“解码”。查看 org.apache.axis2.jaxws.message.databinding.JAXBUtils.getJAXBUnmarshaller(JAXBContext context)。一旦有了解码器,您就可以将 XML 反序列化回对象。

关于java - 如何将xml反序列化为axis2生成的java对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5478994/

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