Java Webservice Client (Best way)

我有一个第三方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

答案 1

执行此 JAVA 的最佳方法是什么?

我个人不会使用Axis 2,即使仅用于客户端开发。这就是我远离它的原因:

  1. 我不喜欢它的架构,讨厌它适得其反的部署模型。
  2. 我发现这是一个低质量的项目。
  3. 我不喜欢它的性能(请参阅针对 JAX-WS RI 的基准测试)。
  4. 设置依赖关系总是一场噩梦(我使用Maven,我总是必须与大量的依赖关系作斗争)(见#2)
  5. 安讯士吸了很长时间,而安讯士2也好不到哪里去。不,这不是个人意见,有共识。
  6. 我受过一次苦,再也没有受过。

Axis仍然存在的唯一原因是IMO,因为它自古以来就一直在Eclipse中使用。感谢上帝,这在Eclipse Helios中已经修复,我希望Axis2最终会死。有更好的堆栈。

我读到SAAJ,看起来会是更细粒度的方法吗?

该怎么办?

除了使用 WSDL2Java 工具之外,还有没有其他方法可以生成代码。也许在另一个选择中。有哪些优点和缺点?

是的!更喜欢像CXFJAX-WS RI这样的JAX-WS堆栈(您可能还会阅读Metro,Metro = JAX-WS RI + WSIT),它们只是更优雅,更简单,更易于使用。在你的情况下,我只使用JAX-WS RI,它包含在Java 6中,因此.wsimport

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

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

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

无选项,请使用:)wsimport

另请参见

相关问题


答案 2

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

我的项目使用以下组合:

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

  • Spring WS - 使用 marshalSendAndReceive() 将代码减少到一行用于发送和接收

  • 一些推土机 - 将复杂的 XMLBean 映射到客户端 GUI 的简单 Bean


推荐