Axis 1.4を使用してWebサービスに接続しています。エラーの説明と、HTTPステータスコード202応答でSOAPエンベロープで応答することによって、このサービス信号の誤差は以下のようになります。HTTPステータスが202 - バグまたは機能の場合、Axis 1.4はSOAPエンベロープをデコードしていませんか?
テスト応答は、WSDLで記述されて<soap:Envelope>
<soap:Body>
<TestResponse>
<TestResult>wrong format</TestResult>
</TestResponse>
</soap:Body>
</soap:Envelope>
:で、
<s:element name="TestResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="TestResult" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
だから私の意見はすべてOKです。問題は、Axisで生成されたスタブで、その代わりにnull
を受け取ったというエラーメッセージが表示されないということです。私はデバッグとして、私はHTTPSender
クラスライン705内の行を見つけた:
if ((returnCode > 199) && (returnCode < 300)) {
if (returnCode == 202) {
return inp;
}
// SOAP return is OK - so fall through
}
これは、SOAPエンベロープをデコードするコードを、スキップします。最後に、間違ったリクエスト(ユーザーパスワードの期限切れなどのランタイムは何でもかまいません)を送信しましたが、エラーの説明が表示されますが、Axisを使用しているため、アクセスがなく、デバッグが非常に便利なnull
ハード(私はWiresharkを使用して見つけた投稿の応答)。
私の質問は、バグですか、機能ですか? WebサービスがHTTPステータス202または標準を悪用させてしまったため、Axisはそれをサポートするにはあまりにも原始的ですか?最高で私は手動で通信をコーディングするのを避けたいと思います。をApacheなどから入手してください。
ふつう、どちらもエラーがありますが、問題は何ですか? Axisのソースを適切なソリューションに変更していますか? –
Axisにパッチを適用する必要があるかもしれません。彼らは2005年以来解決されていない1.xブランチに対してこれに対する未解決の要求があるように見えます - https://issues.apache.org/jira/browse/AXIS-1845。 – Perception