2

axis2 1.3 バージョンの TOMCAT 6.0.18 で axis2 サービスを実行しています。

transfer-encoding 要素をコメント化してチャンクを無効にし、以下に示すように HTTP を 1.0 に変更しました。

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

また、サービス実装クラスに LifeCycle インターフェイスを実装しました。

init()メソッドコードは次のとおりです。

public void init(ServiceContext arg0) throws AxisFault { 
                // TODO Auto-generated method stub 

                 arg0.getConfigurationContext().setProperty(HTTPConstants.HEADER_TRANSFER_ENCODING_CHUNKED,Boolean.FALSE); 

arg0.getConfigurationContext().setProperty(HTTPConstants.HTTP_PROTOCOL_VERSION, HTTPConstants.HEADER_PROTOCOL_10); 

MessageContext responseMessageContext = 
                       MessageContext.getCurrentMessageContext().getOperationContext().getMessageContext( 
                               WSDLConstants.MESSAGE_LABEL_OUT_VALUE); 


                 responseMessageContext.setProperty(HTTPConstants.HEADER_TRANSFER_ENCODING_CHUNKED,Boolean.FALSE); 

responseMessageContext.setProperty(HTTPConstants.HTTP_PROTOCOL_VERSION, HTTPConstants.HEADER_PROTOCOL_10); 

これらの変更にもかかわらず、サービスを呼び出したときに HTTP 応答ヘッダーに content-length が表示されません。何か案は?

4

0 に答える 0