【问题标题】:Webservice-Client: Common approach with Spring WS, JAXB and just one WSDL file?Webservice-Client:Spring WS、JAXB 和一个 WSDL 文件的常用方法?
【发布时间】:2011-07-18 08:36:35
【问题描述】:

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

但我只有一个 WSDL 文件。当我理解正确时,我可以使用 JAXB (xjc.exe) 生成 Java 类,然后我可以使用 Spring WS 来检索 Webservice-Data 并发送答案。

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

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

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

我真的很想开始使用 Spring WS 和 JAXB - 非常感谢您的帮助!

【问题讨论】:

标签: java web-services spring wsdl jaxb


【解决方案1】:

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

xjc,你是说。

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

当然,这是一种选择。一种更自动化的方法是编写 XSL 转换以将模式组件提取到临时文件中,然后在这些文件上运行 XJC。多一点工作,但自动化总是好的。

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

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

【讨论】:

  • 您好 skaffman,感谢您的回答,这对我帮助很大。对于 xjc.exe,还有一个标志“-wsdl”,但它被标记为实验性的。我决定暂时手动完成,但 XSLT 的提示是个好主意。
  • > xjc,你的意思是。是的,当然,谢谢,我编辑了我的问题来纠正这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-25
  • 1970-01-01
  • 2012-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多