码迷,mamicode.com
首页 > Web开发 > 详细

axis2 webservices 411错误解决办法

时间:2015-01-27 00:08:09      阅读:321      评论:0      收藏:0      [点我收藏+]

标签:

axis2 webservices 411错误解决办法

错误:org.apache.axis2.AxisFault: Transport error: 411 Error: Length Required

可能会导致这个问题的原因:

1、访问地址经过端口映射

2、http协议版本不同造成的,在 HTTP1.0中,服务器就会省略response头中的Content-Length而持续写数据出去,当服务器挂了的话,它简单地断开连接。而经典的 HTTP客户端会一直读数据直到碰到-1(传输结束的标识符)。为了处理这个问题,HTTP1.1中增加了一个特殊的header:Transfer- Encoding:chunked,允许响应response被分块chunked。每次向连接写数据的时候会先计算大小,最后在response的尾部 以一个0长度的chunk块标志着此次传输的结束。即HTTP1.1支持chunked编码,它允许HTTP消息被分成多块后再进行传输。 Chunking一般用在服务器响应response的时候,但是客户端也可以chunk大的请求request。即Chunk编码允许服务器在发送完 Header后,发送更多的Body内容。

解决方法:

axis2使用了Content- Encoding: chunked头 ,所以我们在用axis2时为了避免这个问题需要将chunk开关关掉,设置方法(java):

1、 在根据wsdl文件生成的客户端代码中加入_serviceClient.getOptions().setProperty(HTTPConstants.CHUNKED, false) 取消chunk限制,加入位置如下:

 技术分享

2、在客户端创建连接时设置 如下:

UserServiceStub stub = new UserServiceStub();
stub._getServiceClient().getOptions().setProperty(org.apache.axis2.transport.http.HTTPConstants.CHUNKED,Boolean.FALSE);

axis2 webservices 411错误解决办法

标签:

原文地址:http://www.cnblogs.com/yangpeng2036102/p/4251580.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!