Webservice-Client:使用Spring WS,JAXB和一个WSDL文件的常用方法?

时间:2011-07-18 08:36:36

标签: java web-services spring wsdl jaxb

我想使用Spring WS构建一个带有JAXB的Webservice-Client,用于编组和解组Java类。

但我所拥有的只是一个WSDL文件。当我理解正确时,我可以使用JAXB(xjc.exe)生成Java类,然后我可以使用Spring WS来检索Web服务数据并发送答案。

但是JAXB只能从xsd-schema文件生成Java类。我现在必须手动从WSDL文件中复制那些xsd-definitions来通过JAXB生成这些类吗? (在我的例子中,WSDL文件包含4个XSD定义)。

或者有没有办法将整个WSDL转换为可以与Spring WS一起使用的Java类(我知道有“wsimport”,但它是JAX-WS的一部分,我想我不能使用在这种情况下,对吧?)。

那么Spring WS / JAXB /一个WSDL文件的常用方法是什么?

我真的很想通过Spring WS和JAXB获得好处 - 非常感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

  

我可以使用JAXB(xbj.exe)生成Java类

你的意思是

xjc

  

我现在必须手动从WSDL文件中复制那些xsd-definitions以通过JAXB生成这些类吗?

当然,这是一个选择。更自动化的方法是编写XSL转换以将架构组件提取到临时文件中,然后运行XJC。还有一点工作,但自动化总是很好。

  

我知道有“wsimport”,但它是JAX-WS的一部分,我想我不能在这种情况下使用它,对吗?

实际上,JAX-WS工件只是JAXB的一种装饰形式。 wsimport将生成一些特定于JAX-WS的内容,以及表示模式组件的标准JAXB工件。您应该能够为Spring-WS使用JAXB生成的类,并忽略特定于JAX-WS的类。