我遇到了与JAX-WS和AXIS相关的问题。 JAX-WS(2.1.7)作为客户端,Axis(1.4.x)作为服务器。
一切正常,但无法读取响应。
响应:
<?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:
中删除myserviceReturn
- 名称空间声明,则JAX-WS能够返回除null之外的任何内容。
有没有人知道如何强制JAX-WS忽略命名空间,如何手动修改SOAP响应以排除“ns1”,或者针对此类问题的其他想法?
答案 0 :(得分:1)
您需要编写一个不包含名称空间的自定义WSDL文件。该文件位于META-INF目录中。您可以从应用程序现在拥有的默认值开始,然后将其保存在此处。