はじめに
SOAP通信で、クライアントを作成し疎通を行なったところ、
掲題のエラーが発生致しました。
調査中に出てきた資料が古いものがほとんどだったことや、
再度発生した場合の備忘録として記載しておきます。
環境
バージョン:Java8
アプリケーションサーバー:Tomcat8.5
ライブラリ:axis2
発生までの流れ
Axis2のライブラリを使用し、下記コマンドからクライアント側stubを生成致しました。
wsdl2java.bat -uri [wsdlのアドレス] -s -o [出力先]
その後、生成されたクライアントを、プロジェクトに追加し、
疎通を行いました。
そして、掲題のエラーが発生致しました。
411 Error: Length Required
原因
Transfer-Encoding: chunked が設定されていたことが原因でした。
stubを作成した時点で、Transfer-Encodingの設定がデフォルトでchunkedになっておりました。
対処方法
以下のソースコードを追加し、Transfer-Encoding: chunked の設定を無効にしました。
options.setProperty(MessageContextConstants.CHUNKED, Constants.VALUE_FALSE);
参考資料
http://blogs.yahoo.co.jp/dk521123/32003685.html
http://b.hatena.ne.jp/entry/akitosblog.seesaa.net/article/168401299.html
http://axis2.exblog.jp/2966162/