Java Web服务客户端(最佳方式)

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

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

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

  1. 我不喜欢它的架构,也不喜欢它的反生产部署模式。
  2. 我觉得这是低质量的项目。
  3. 我不喜欢它的性能(参考这个基准testing与JAX-WS RI )。
  4. 设置依赖关系永远是一场噩梦(我使用Maven,而且我总是必须与巨大的依赖关系作斗争)(请参阅#2)
  5. Axis吸大了时间,Axis2并不好。 不,这不是个人意见,有共识。
  6. 我遭受过一次,从此再也没有。

Axis仍然在身边的唯一原因是IMO,因为它在很久以前就被用在了Eclipse中。 感谢上帝,Eclipse Helios已经修复了这个问题,我希望Axis2最终会死掉。 有更好的堆栈。

我读过关于SAAJ,看起来会更细粒度的方法吗?

做什么?

除了使用WSDL2Java工具生成代码之外,还有其他什么方法吗? 也许wsimport在另一个选项。 优缺点都有什么?

是! 首选像CXF或JAX-WS RI这样的JAX-WS栈(你也可以阅读Metro, Metro = JAX-WS RI + WSIT ),它们更加优雅,简单,易于使用。 在你的情况下,我只会使用Java 6中包含的JAX-WS RI,从而使用wsimport

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

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

  • 开发JAX-WS Web服务客户端 (从这里开始)
  • 使用Java SE 6平台介绍JAX-WS 2.0,第1部分
  • 使用JAX-WS创build简单的Web服务和客户端
  • 使用Apache CXF或GlassFish Metro创buildSOAP客户端 (Glen Mazza的博客是一个很好的资源)

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

没有选项,使用wsimport 🙂

也可以看看

  • Java WebServiceLand中的Elad's Adventures
  • 轴2:为什么要麻烦? 在BileBlog(准备好胆汁) – 你必须停止redirect。

相关问题

  • 什么是最好的Java Web服务框架?
  • Spring-ws或者Axis2或者其他的用于WS的“合同优先”方法

我使用Spring WS为Web服务应用程序的客户端取得了很好的成功 – 请参阅http://static.springsource.org/spring-ws/sites/1.5/reference/html/client.html

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

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

  • Spring WS – 使用marshalSendAndReceive()将代码减less为一行发送和接收

  • 一些Dozer – 将复杂的XMLBeans映射到客户端GUI的简单bean

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

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

下面的文章给出了使用Apache axis2开发Web服务的很好的解释。

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

http://wso2.org/library/136

以下答案中的一些想法:

使用Axis2创buildWeb服务的步骤 – 客户端代码

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

有很多Web服务框架在那里…