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

Posted

技术标签:

【中文标题】Webservice-Client:Spring WS、JAXB 和一个 WSDL 文件的常用方法?【英文标题】:Webservice-Client: Common approach with Spring WS, JAXB and just one WSDL file? 【发布时间】: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 - 非常感谢您的帮助!

【问题讨论】:

请查看:***.com/questions/42952387/…Reggards! 【参考方案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,你的意思是。是的,当然,谢谢,我编辑了我的问题来纠正这个问题。

以上是关于Webservice-Client:Spring WS、JAXB 和一个 WSDL 文件的常用方法?的主要内容,如果未能解决你的问题,请参考以下文章

你了解Spring从Spring3到Spring5的变迁吗?

Spring全家桶笔记:Spring+Spring Boot+Spring Cloud+Spring MVC

学习笔记——Spring简介;Spring搭建步骤;Spring的特性;Spring中getBean三种方式;Spring中的标签

Spring--Spring入门

Spring框架--Spring事务管理和Spring事务传播行为

Spring框架--Spring事务管理和Spring事务传播行为