Axis2 - 在axis2.xml中禁用分块传输编码

时间:2014-06-10 21:25:34

标签: web-services tomcat axis2

我试图在Axis2上使用HTTP 1.1禁用分块传输编码。我已经编辑了axis2.xml并注释掉了相关的参数行,但它仍然在响应chunked。

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>

然后我停止并重新启动Tomcat,但它仍然返回以下标题:

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/xml;charset=UTF-8
Transfer-Encoding: chunked
Date: Tue, 10 Jun 2014 21:18:44 GMT

这是在localhost上;我使用的是OS X Mavericks,Tomcat 7.0.53和Axis2 1.6.2。

我甚至尝试将协议设置为HTTP / 1.0,但响应仍然返回1.1。就像参数被忽略一样。

我需要使用服务器更改来工作; Axis2客户端没有使用这些服务,因此我无法在客户端上使用options.setProperty(HTTPConstants.CHUNKED, "false");

1 个答案:

答案 0 :(得分:1)

我们能够使用以下代码禁用客户端的分块传输:

Options options = new Options();
options.setProperty(HTTPConstants.CHUNKED, "false");
this.getStub()._getServiceClient().setOverrideOptions(options);

当然&#34; this.gesStub()&#34; method是我们自己的helper方法来获取生成的stub对象。 使用setOverflowOptions而不是setOptions方法非常重要。