Axis2 Web 服务名称空间前缀转换

Posted

技术标签:

【中文标题】Axis2 Web 服务名称空间前缀转换【英文标题】:Axis2 Web Services namaspace prefix conversion 【发布时间】:2016-04-05 14:56:52 【问题描述】:

我使用带有 Eclipse 插件的 Axis2(1.4) 引擎实现了一个 Web 服务。客户需要格式的响应:

<soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3..org/2001/12/soap-encoding" >
   <soap:Body>
      <GetResponse>
         <SearchResult>0</SearchResult>
      </GetResponse>
   </soap:Body>
</soap:Envelope>

但我的服务正在返回以下响应

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <soapenv:Body>
      <GetResponse>
         <SearchResult>0</SearchResult>
      </GetResponse>
   </soapenv:Body>
</soapenv:Envelope>

我必须使用旧版本的 Axis 吗?或者,有没有办法更改前缀并接受旧的 SOAP 请求??

谢谢。 问候。

【问题讨论】:

【参考方案1】:

Axis2 的旧版本 - Axis1.x 完全不同。 Apache 对 Axis2 所做的就是改变了整个架构。它们在 Axis2 中包含了处理程序、服务和模块的全新概念。

因此,不再可能使用相同的客户端代码接受旧的 (Axis1.4) 和新的 (Axis2) 请求。

【讨论】:

以上是关于Axis2 Web 服务名称空间前缀转换的主要内容,如果未能解决你的问题,请参考以下文章

XSLT:如何删除同义名称空间

删除 XSLT 映射生成的元素的名称空间前缀

在 XSLT 中匹配具有名称空间前缀的元素

如何使用 XSLT 为所有元素和属性添加名称空间和前缀?

删除ns2作为默认名称空间前缀

在 vb .net 中使用名称空间前缀解析 XML