内の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の2番目の宣言を削除し、私は取得へこの:
<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>
Webサービス仕様によると、 は、qnameがsoapenv:Bodyノード内で再宣言されることが必須ですか? SOAPUIのバグか、Application Serverのバグですか?または私の部分からの誤解? SOAPUI 4.0.1
、WebLogic Serverバージョン:10.3.2.0
編集:UPS、でもWebLogicアプリケーション・サーバーを使用している場合、私はCXF Webサービスフレームワークを使用していました。私はそこに問題を投稿した。 issues.apache.org/jira/browse/CXF-4026
ので:SOAPUI 4.0.1、CXF 2.5.0
答えに感謝します。しかし、これは推測ですが、私はそれに同意しますが、私は決定的な答えが必要です。 –
@David:決定的な答えは、SOAP仕様では何も言わないということです。通常のXMLルールが適用されます。 WebLogicのバグ。 –
私はそう言っていると思うけど、信じるのはちょっと難しいと思うが、私には同意するだろう... :) 質問をweblogicフォーラムに投稿した: https://forums.oracle.com/forums/ thread.jspa?threadID = 2331952&tstart = 0 –