我在tomcat服务器上部署了一个web服务,并为它生成了一个wsdl文件。
后来,我通过wsdl生成了一个新的soap项目,并向服务器执行了一个soap请求。
这里的问题是在服务器端,由于"InputData“和"CCNA”的命名空间前缀错误,xml的解组失败了。目前是cfa。
根据java代码,InputData的命名空间是xs,CCNA是bim。因此,如果我修改soap请求,那么unmarshall在服务器端是可以的。
那么,问题在哪里?WSDL生成还是JAX中的其他任何地方?我不应该修改soap请求。
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(名称= "InputData",命名空间= "http://www.qwest.com/XMLSchema",必需=真)
发布于 2016-09-07 12:43:39
我猜您的XML请求是不正确的。请尝试首先根据XML架构验证您的请求。
使用哪个名称空间前缀并不重要,但需要确保XML元素与适当的命名空间匹配。
发布于 2016-09-07 14:26:29
Ajay,您的注释是:
@XmlElement(名称= "InputData",命名空间= "http://www.qwest.com/XMLSchema",必需=真)
但是在您的XML请求中,元素InputData属于名称空间"http://cfa.ni.ctl.com/“。
您需要修复注释。
https://stackoverflow.com/questions/39370055
复制相似问题