내부의 qname를 다시 선언 나는이 양식의 SOAP 요청이 있습니다SOAP 본체
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:myqname="http://example.com/hello"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header/>
<soapenv:Body>
<myqname:MyRequest xmlns:myqname="http://example.com/hello">
...
</myqname:MyRequest>
</soapenv:Body>
</soapenv:Envelope>
나는 SOAPUI를 요구하는 경우에 "형식의 XML"이 요청, 이 myqname의 두 번째 선언을 제거, 그래서하려면 이 :
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:myqname="http://example.com/hello"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header/>
<soapenv:Body>
<myqname:MyRequest>
...
</myqname:MyRequest>
</soapenv:Body>
</soapenv:Envelope>
원래 요청은 잘 작동 하지만 응용 프로그램 서버는이 오류와 수정 요청에 실패
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<soap:Fault>
<faultcode>soap:Client</faultcode>
<faultstring>Unmarshalling Error: UndeclaredPrefix: Cannot resolve 'myqname:MyRequest' as a QName: the prefix 'myqname' is not declared.</faultstring>
</soap:Fault>
</soap:Body>
</soap:Envelope>
웹 서비스 사양에 따라 은 qname이 soapenv : Body 노드 내부에서 다시 선언되어야합니다. SOAPUI 버그입니까, 아니면 Application Server 버그입니까? 또는 내 부분에서 오해? SOAPUI 4.0.1
, 웹 로직 서버 버전 : 10.3.2.0
편집 : UPS, 심지어 WebLogic 응용 프로그램 서버를 사용하는 경우, 내가 CXF 웹 서비스 프레임 워크를 사용했다. 거기에 문제를 게시했습니다. issues.apache.org/jira/browse/CXF-4026
그래서 : SOAPUI 4.0.1, CXF 2.5.0
답해 주셔서 감사합니다. 그러나 이것은 추측이며 나는 그것에 동의하지만 확실한 대답이 필요합니다. –
@David : 확실한 대답은 SOAP 사양이 아무 것도 말하지 않는다는 것입니다. 일반 XML 규칙이 적용됩니다. WebLogic의 버그. –
나는 그렇게 말하고 싶지만, 믿기에는 조금 어렵다는 것에 동의 할 것이다 ... :) 나는 웹 로직 포럼에 질문을 올렸다 : https://forums.oracle.com/forums/ thread.jspa? threadID = 2331952 & tstart = 0 –