为JAX-RPC Web服务生成JAX-WS客户端存根?

4

我能否使用JAX-WS(wsimport)生成的客户端存根连接到JAX-RPC Web服务?使用JAX-WS客户端消耗JAX-RPC Web服务有什么影响?有什么优点和缺点吗?

1个回答

6
  1. 工具wsimport适用于WSDL文件,该文件是描述Web服务的XML文档。
  2. 工具wsimport不关心WSDL中描述的服务风格(RPC/DOCUMENT)。
  3. 如果WSDL采用RPC风格,则它将生成用于消费RPC风格Web服务的客户端存根,同样地,对于文档风格也是如此。
  4. JAX-WS(提供wsimport)提供(或者说能够生成)Web服务的两种风格(RPC/Document),并且两种风格都可以很好地与各自类型的服务端点配合使用。
  5. 这里有一个使用wsimport生成JAX-RPC客户端的例子。

希望这可以帮助你。


你好!感谢您的回复!这是否意味着,无论我使用wsimport生成的客户端存根还是wscompile生成的客户端存根,最终我仍然能够使用其中任何一个进行连接?我的困境是这样的:我有一组WSDL文件。由于我不知道如何生成客户端存根,所以当我收到WSDL文件时,我请别人为我生成客户端存根。生成客户端存根的人使用IBM的RAD。其中一些文件是使用JAX-RPC生成的,而另一些则是使用JAX-WS生成的。 - Arci
现在我有点困惑的是:如果他可以使用JAX-WS生成所有的WSDL文件,那么为什么他要使用JAX-RPC生成其他文件呢?使用JAX-RPC生成的相关性是什么?我知道JAX-WS更加新颖,那么他为什么选择使用JAX-RPC生成其他文件呢?你能否给我解释一下这个问题? - Arci
“wsimport”是最新的生成Web服务工件的方法,比“wscompile”更好。查看此链接。理想情况下,如您所说,使用“wsimport”或“wscompile”并没有区别。但在您的特定情况下,为什么其他人使用“JAX-RPC”而非“JAX-WS”?老实说,我无法解决这个问题。他自己会是回答这个问题的更好的人选。 - Santosh
不确定,但可能存在一种情况,即 WSDL 太复杂,无法通过普通的 wsimport 处理,因此他被迫使用 wscompile。但这是一种非常罕见的情况,我很想了解这种情况。 - Santosh
谢谢!是的,我也不确定为什么他选择使用JAX-RPC而不是其他。事实上,我也能够从WSDL文件生成JAX-WS客户端,其中他生成了JAX-RPC客户端。因此,WSDL文件不应该有问题。但是,由于我无法访问实际的Web服务,因此无法测试生成的客户端。:|也许我应该直接问他为什么这样做。感谢澄清! - Arci

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接