我在tomcat服务器上部署了一个Web服务,并且还生成了一个wsdl文件。
后来我通过wsdl生成了一个新的soap项目,并向服务器执行了soap请求。
这里的问题是在服务器端,由于“InputData”和“CCNA”的命名空间前缀错误,xml的解组失败。目前它是 cfa 。
根据java代码,InputData的命名空间为 xs ,CCNA为 bim 。 所以,如果我修改soap请求,unmarshall在服务器端就可以了。
那么问题出在哪里? 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)
答案 0 :(得分:0)
我猜你的XML请求不正确。请尝试首先验证您对XML架构的请求。
使用哪个名称空间前缀无关紧要,但您需要确保XML元素与相应的名称空间匹配。
答案 1 :(得分:0)
阿贾伊, 你的注释是:
@XmlElement(name =&#34; InputData&#34;,namespace =&#34; http://www.qwest.com/XMLSchema&#34;,required = true)
但是在您的XML请求中,元素InputData属于命名空间&#34; http://cfa.ni.ctl.com/&#34;。
您需要修复注释。