我正在创建一个Spring WS客户端。我有一个来自第三方公司的巨大的 WSDL。它们提供了一组通过Axis的WSDL2Java映射到其WSDL的类。我不想使用Axis或它们的任何依赖项。
由于这是一个Web服务客户端,我可以自由选择任何框架。我的问题是如何在不使用Axis的WSDL2Java的情况下为WSDL生成映射类。我是否坚持操纵纯XML?请注意我正在使用Spring WS。
修改
如果服务提供商已经使用Axis 1构建了他们的服务,那么你是否真的在制造一个同样基于Axis 1的客户端?我从这个答案JAX-WS client with Axis service中读到了它。我认为Web服务应该被解耦或者至少独立于它创建的平台,允许您从基于Java的客户端访问基于.Net的Web服务,反之亦然?
答案 0 :(得分:3)
如果您想使用Spring-WS,那么最好的办法是使用Java 6附带的wsimport
工具(如果您使用的是Java5,则使用JAX-WS RI)。这将为Web服务生成JAX-WS存根。这些存根中包含的是WSDL模式的标准JAXB绑定,这些绑定可以与Spring-WS一起使用(wsimport
将生成Spring-WS不需要的其他服务存根。)
答案 1 :(得分:1)
如果您只对从WSDL生成POJO感兴趣,我认为您可以从WSDL获取XSD并使用XJC工具仅生成JAXB bean。这样可以避免生成无用的JAX-WS存根。