JavaWebservice 客户端(最佳方式)

我有一个第三方 WSDL,我需要用 Java 为 Web 服务客户机编写代码来调用第三方 WSDL 中的操作。现在,我已经使用 Axis 中的 WSDL2JAVA 工具生成了客户机存根,并使用 XMLbeans 进行数据绑定。

  1. 做这个 JAVA 的最佳方法是什么?
  2. 我读了关于 SAAJ 的文章,看起来会更加细粒度的接近吗?
  3. 除了使用 WSDL2Java 工具之外,还有其他方法来生成代码吗。也许 wsimport在另一个选项中。优点和缺点是什么?
  4. 有人可以发送关于这些主题的一些好的教程的链接吗?
  5. 在使用 WSDL2Java 生成代码时,我们需要使用哪些选项?

我最初使用了一些基本的东西,现在我有了这些选择

C:\axis2-1.5.1\bin>wsdl2java -uri  mywsdlurl  -o client -p somepackage -d xmlbeans -s -t -ssi
106765 次浏览

我已经成功地将 SpringWS 用于 Web 服务应用程序的客户端——参见 http://static.springsource.org/spring-ws/sites/1.5/reference/html/client.html

我的项目使用了以下组合:

  • XMLBeans (使用 XMLBeans-Maven-plugin 从简单的 Maven 作业生成)

  • 使用 SpringWS 的 MarshalSendAndRecept ()将代码减少到一行用于发送和接收

  • 一些 Dozer 将复杂的 XMLBeans 映射为用于客户机 GUI 的简单 bean

以下答案中的一些想法:

使用 Axis2创建 Web 服务的步骤-客户端代码

给出一个 Groovy 客户机调用从 WSDL 生成的 ADB 类的示例。

现在有很多 Web 服务框架..。

做这个 JAVA 的最佳方法是什么?

我个人认为 没有使用 Axis2,甚至仅用于客户端开发。以下是我远离它的原因:

  1. 我不喜欢它的架构,也不喜欢它的反生产部署模型。
  2. 我认为这是一个低质量的项目。
  3. 我不喜欢它的表演(见 这是一个针对 JAX-WS RI 的基准测试)。
  4. 设置依赖关系总是一个噩梦(我使用 Maven,而且 一直都是必须与大量的依赖关系作斗争)(参见 # 2)
  5. Axis 糟糕透顶,Axis2也好不到哪里去。不,这不是个人观点,而是大家的共识。
  6. 我受过一次苦,再也不会了。

Axis 仍然存在的唯一原因是 IMO,因为它自古以来就在 Eclipse 中使用。谢天谢地,Eclipse Helios 中已经修复了这个问题,我希望 Axis2最终会消失。还有更好的书架。

我读了关于 SAAJ 的文章,看起来会更加细粒度的接近吗?

做什么?

除了使用 WSDL2Java 工具之外,还有其他方法来生成代码吗。也许 Wsimport 是另一个选择。优点和缺点是什么?

太棒了!更喜欢像 CXFJAX-WS RI这样的 JAX-WS 堆栈(您可能还会读到 Metro,警察 = JAX-WS RI + WSIT) ,它们只是更优雅、更简单、更易于使用。在您的示例中,我将只使用 Java6中包含的 JAX-WSRI,因此使用 wsimport

有人可以发送关于这些主题的一些好的教程的链接吗?

这是另一个优点,有很多关于 JAX-WS 的(高质量的)教程,例如:

在使用 WSDL2Java 生成代码时,我们需要使用哪些选项?

没有选项,使用 wsimport:)

参见

相关问题

您可以在这里找到一些与使用 Apacheaxis2开发 Web 服务客户端相关的资源。

Http://today.java.net/pub/a/today/2006/12/13/invoking-web-services-using-apache-axis2.html

下面的文章很好地解释了如何使用 Apacheaxis2开发 Web 服务。

Http://www.ibm.com/developerworks/opensource/library/ws-webaxis1/

Http://wso2.org/library/136