我理解你的问题归结为如何从Java调用SOAP(JAX-WS)Web服务并获取它的返回对象。在这种情况下,您有两种可能的方法:
>通过wsimport生成Java类并使用它们;要么
>创建一个SOAP客户端:
>将服务的参数序列化为XML;
>通过HTTP操作调用Web方法;和
>将返回的XML响应解析回一个对象。
关于第一种方法(使用wsimport):
我看到你已经有服务的(实体或其他)业务类,这是一个事实,wsimport生成一组全新的类(这是某种程度上重复的类已经有)。
恐怕,在这种情况下,你只能:
>修改(编辑)wsimport生成的代码,以使其使用您的业务类(这是困难的,不知何故不值得 – 记住每当WSDL更改,你将不得不重新生成和重新编码的代码);要么
>放弃并使用wsimport生成的类。 (在此解决方案中,业务代码可以将生成的类用作另一个架构层的服务)。
关于第二种方法(创建自定义SOAP客户端):
为了实现第二种方法,您必须:
>拨打电话:
>使用SAAJ(SOAP with Attachments API for Java)框架(见下文,它随Java SE 1.6或更高版本提供)进行调用;要么
>你也可以通过java.net.HttpUrlconnection(和一些java.io处理)。
>将对象转换为XML并从中返回:
>使用OXM(对象到XML映射)框架(如JAXB)将XML序列化/反序列化到对象
>或者ÿ