带有 Axis 服务的 JAX-WS 客户端

Posted

技术标签:

【中文标题】带有 Axis 服务的 JAX-WS 客户端【英文标题】:JAX-WS client with Axis service 【发布时间】:2010-05-05 22:05:11 【问题描述】:

我对 Web 服务比较陌生,但我需要在我的应用程序中集成对现有服务的调用。理想情况下,我想使用 JAX-WS,因为我正在寻找最简单、开发速度最快的解决方案,而 MyEclipse 能够从 WSDL 生成 JAX-WS 客户端。不幸的是,我继承的 WSDL 是从 Axis 使用 RPC 构建的。这仍然有效吗?在尝试生成代码时,我收到这些错误,并且我发现的网络搜索似乎说它是需要升级的服务端:

<restriction base="soapenc:Array">
    <attribute ref="soapenc:arrayType" wsdl:arrayType="impl:MyTypeList[]" />
</restriction>

WS-I:(BP2108) Array 声明使用 - 限制或扩展 - soapEnc:Array 类型,或在类型声明中使用 wsdl:arrayType 属性

WS-I: (BP2122) wsdl:types 元素包含不是 XML 模式定义的数据类型定义

WS-I: (BP2406) soapbind:body、soapbind:fault、soapbind:header 和 soapbind:headerfault 的使用属性没有“literal”值。

【问题讨论】:

【参考方案1】:

您知道该服务使用的是哪个版本的 Axis?

最好的办法是使用服务所使用的 Axis 版本来生成客户端。这绝对是开发最快的解决方案。使用 JAX-WS 将不起作用。

【讨论】:

以上是关于带有 Axis 服务的 JAX-WS 客户端的主要内容,如果未能解决你的问题,请参考以下文章

apache cxf的jax-rs和jax-ws的区别

“便携式”JAX-WS 客户端

JAX-WS、Axis2 和 CXF 的区别

JAX-WS服务端及客户端

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

JAX-WS 客户端:跨多个服务维护会话/cookie