2

サードパーティが提供するWebサービスへのアクセスに問題があります。Axis2のワイヤートレースを見ると、XMLタグの真ん中に\ r \ n3ff8 \ r \ nが戻ってきているのがわかります。これにより、Axis2が解析しようとしたときにヒスノイズが発生します。

私が知る限り、これはAxis2がうまく処理していないHTTP1.1チャンクと関係があります。

私が抱えている問題は、このフォーラム投稿の問題と同じです

チャンクの問題を回避するためにHTTP1.0を使用するようにWebサービスコードを変更するにはどうすればよいですか?とにかくAxisのデフォルトがCommonsHTTPSenderであると言える限り、上記のリンク先のフォーラム投稿がなぜこれに変更することを提案したのかわかりません。

あるいは、この問題を解決するためのより良い方法はありますか?

4

2 に答える 2

2

チャンクを直接オフにすることができます。

stub._getServiceClient().getOptions().setProperty(HTTPConstants.CHUNKED, false);

必要に応じて、axis2.xml構成ファイルを介してこれらの両方を制御することもできます。次のセクションを見つけてください。

<transportSender name="http"
    class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
    <parameter name="PROTOCOL">HTTP/1.1</parameter>
    <parameter name="Transfer-Encoding">chunked</parameter>
</transportSender>

PROTOCOLパラメーターを「HTTP/1.0」に変更するか、Transfer-Encodingパラメーターを削除してチャンクを無効にすることができます。

于 2012-01-31T18:07:43.487 に答える
0

それを行う方法を見つけ、サービスを呼び出すために使用するスタブオブジェクトを取得し、その後に次のコードを追加します。

stub._getServiceClient().getOptions().setProperty(org.apache.axis2.transport.http.HTTPConstants.HTTP_PROTOCOL_VERSION,
                org.apache.axis2.transport.http.HTTPConstants.HEADER_PROTOCOL_10);
于 2012-01-27T14:06:49.923 に答える