为 JAX-RPC Web 服务生成 JAX-WS 客户端存根?
Posted
技术标签:
【中文标题】为 JAX-RPC Web 服务生成 JAX-WS 客户端存根?【英文标题】:Generating JAX-WS client stubs for JAX-RPC web service? 【发布时间】:2012-09-11 05:46:10 【问题描述】:我能否使用 JAX-WS (wsimport) 生成的客户端存根连接到 JAX-RPC Web 服务?使用 JAX-WS 客户端使用 JAX-RPC Web 服务有什么影响?有什么优点和缺点吗?
【问题讨论】:
【参考方案1】:-
工具
wsimport
处理WSDL
文件,该文件是描述Web 服务的XML 文档。
工具wsimport
不关心WSDL 中描述的服务(RPC/DOCUMENT)的样式。
如果 WSDL 具有 RPC 样式,它将生成用于使用 RPC 样式 Web 服务的客户端存根,类似地用于文档样式。
JAX-WS
(提供wsimport
)提供(或者更确切地说能够生成)Web 服务的样式(RPC/文档),并且两者都可以与各自类型的服务端点一起很好地工作。
Here is an example of 使用 wsimport
生成 JAX-RPC 客户端。
希望这会有所帮助。
【讨论】:
嗨!感谢您的回复!这是否意味着我使用 wsimport 生成的客户端存根或 wscompile 生成的客户端存根都没有关系,因为最后我仍然可以使用两者中的任何一个进行连接?我的困境是这样的:我有一组 WSDL 文件。由于我在收到 WSDL 文件时还不知道如何生成客户端存根,所以我请人为我生成客户端存根。生成客户端存根的人使用 IBM 的 RAD。有些文件是使用 JAX-RPC 生成的,而有些是使用 JAX-WS 生成的。 现在这是我感到困惑的部分:如果他可以使用 JAX-WS 生成所有 WSDL 文件,那么他为什么要使用 JAX-RPC 生成其他文件?使用 JAX-RPC 生成的相关性是什么?我知道 JAX-WS 比较新,那么他为什么选择使用 JAX-RPC 生成其他的呢?你能告诉我这个吗? 嗯,wsimport
是生成 Web 服务工件的最新方法,并且更好,因为 wscompile
是做同样事情的早期方法。 Check this link。理想情况下,正如您所说,您使用wsimport
还是wscompile
都没有关系。但是,在您的特定情况下,为什么其他人使用JAX-RPC
而不是JAX-WS
?老实说,我无法弄清楚这一点。他本人更适合回答这个问题。
不确定,但可能是 WSDL 过于复杂而无法由普通wsimport
处理的情况,因此他不得不使用wscompile
。但这是一个遥远的可能性,我很想知道那个案例。
谢谢!是的,我也不确定他为什么选择在其他人身上使用 JAX-RPC。事实上,我还能够从他生成 JAX-RPC 客户端的 WSDL 文件中生成 JAX-WS 客户端。所以 WSDL 文件应该没有问题。但是我无法测试生成的客户端,因为我无法访问实际的 Web 服务。 :|也许我应该直接问他为什么这样做。感谢您的澄清!以上是关于为 JAX-RPC Web 服务生成 JAX-WS 客户端存根?的主要内容,如果未能解决你的问题,请参考以下文章
真正的轻量级WebService框架——使用JAX-WS(JWS)发布WebService
编写 jax-ws web 服务并在没有 XSD 的情况下生成 WSDL