【发布时间】:2017-01-15 03:41:28
【问题描述】:
我在 tomcat 服务器上部署了一个 Web 服务,并且还为它生成了一个 wsdl 文件。
后来我通过wsdl生成了一个新的soap项目,并执行了一个soap请求到服务器。
这里的问题出在服务器端,由于“InputData”和“CCNA”的命名空间前缀错误,xml 的解组失败。目前是cfa。
根据java代码,InputData的命名空间是xs,CCNA是bim。 所以,如果我修改了soap请求,解组在服务器端就可以了。
那么,问题出在哪里? WSDL 生成或 JAX WS 中的其他任何地方? 我不应该修改我的肥皂请求。
SOAP 请求:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cfa="http://cfa.ni.ctl.com/" xmlns:bim="http://www.qwest.com/XMLSchema/BIM" xmlns:xs="http://www.qwest.com/XMLSchema">
<soapenv:Header/>
<soapenv:Body>
<cfa:getCFACircuit>
<!--Optional:-->
<CFACircuitRequest>
<bim:RequestId>123</bim:RequestId>
<bim:WebServiceName>123</bim:WebServiceName>
<bim:RequestPurpose>123</bim:RequestPurpose>
<bim:AuthorizationInfo>
<!--Optional:-->
<bim:ApplicationId>123</bim:ApplicationId>
<!--Optional:-->
<bim:UserId>123</bim:UserId>
<!--Optional:-->
<bim:Userid>123</bim:Userid>
<bim:Password>123</bim:Password>
</bim:AuthorizationInfo>
<!--Optional:-->
<bim:TargetSchemaVersionUsed>
<!--Optional:-->
<bim:TargetXSDName>123</bim:TargetXSDName>
<!--Optional:-->
<bim:MajorVersionNumber>123</bim:MajorVersionNumber>
<!--Optional:-->
<bim:MinorVersionNumber>123</bim:MinorVersionNumber>
</bim:TargetSchemaVersionUsed>
<!--Optional:-->
<bim:TimeOutSecond>123</bim:TimeOutSecond>
<!--Optional:-->
<bim:SendTimeStamp>123</bim:SendTimeStamp>
<cfa:InputData>
<cfa:CCNA>123</cfa:CCNA>
<xs:CableKey>
<!--Optional:-->
<xs:LowUnit>123</xs:LowUnit>
<!--Optional:-->
<xs:HighUnit>123</xs:HighUnit>
<!--Optional:-->
<xs:CableId>123</xs:CableId>
<!--Optional:-->
<xs:CableSubPath>123</xs:CableSubPath>
<!--Optional:-->
<xs:CLLIALocation>123</xs:CLLIALocation>
<!--Optional:-->
<xs:CLLIZLocation>123</xs:CLLIZLocation>
</xs:CableKey>
</cfa:InputData>
</CFACircuitRequest>
</cfa:getCFACircuit>
</soapenv:Body>
</soapenv:Envelope>
服务器上输入数据的 XML 注释是:
@XmlElement(name = "InputData", namespace = "http://www.qwest.com/XMLSchema", required = true)
【问题讨论】:
-
我不知道为什么有了这个注释,wsdl 中的 inputData 不在相应的命名空间中……也许是与 jaxb 版本有关的问题?你可以试试新的吗?对不起,但我不知道如何在这里提供帮助。我也将删除我的答案,因为它不能解决您的问题。
-
好的..谢谢..我尝试使用更新的 jaxb 版本