0

我遇到了与 JAX-WS 和 AXIS 相关的问题。JAX-WS (2.1.7) 作为客户端,Axis (1.4.x) 作为服务器。

一切正常,但无法将响应读取到 Java。

回复:

<?xml version="1.0" encoding="UTF-8"?>
<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>
  <ns1:myserviceResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://my/service">
   <ns1:myserviceReturn xsi:type="xsd:string">responsestring</ns1:myserviceReturn>
  </ns1:myserviceResponse>
 </soapenv:Body>
</soapenv:Envelope>

问题在于,如果ns1:从 中删除 -namespace 声明myserviceReturn,则 JAX-WS 能够返回 null 以外的任何内容。

有没有人知道如何强制 JAX-WS 忽略名称空间,如何手动修改 SOAP 响应以排除“ns1”,或针对此类问题的其他想法?

4

1 回答 1

1

您需要编写一个不包含名称空间的自定义 WSDL 文件。该文件位于 META-INF 目录中。您可以从您的应用程序现在拥有的默认设置开始,然后将其保存在此处。

于 2009-06-10T22:19:14.143 回答