axis2 webservices 411错误解决办法

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);

时间: 2024-10-24 18:01:04

axis2 webservices 411错误解决办法的相关文章

error C2039: 'SetDefaultDllDirectories'错误解决办法

使用VS2013+WDK8.1+Win7开发UMDF驱动,当使用了CComPtr类,包含了atlcomcli.h头文件却报错,错误如下: Error 3 error C2039: 'SetDefaultDllDirectories' : is not a member of '`global namespace'' 可是使用VS2012+WDK8.0+Win7却没有这个问题. 经过一番折腾终于找到了解决办法,在预定义中增加一项定义  _USING_V110_SDK71_ 具体见下图: error

Ubuntu提示piix4_smbus:Host SMBus错误解决办法

1.编译内核时出现下面的错误 CHK     include/linux/version.h CHK     include/generated/utsrelease.h make[1]: `include/generated/mach-types.h' is up to date. CALL    scripts/checksyscalls.sh CC      scripts/mod/empty.o /opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-

AD09 "Access violation at address 0C241A06 in module 'IntegratedLibrary.DLL" 错误解决办法

regedit-将HKEY_CURRENT_USER\Software\AltiumDesignerWinter09\DesignExplorer\Preferences\IntegratedLibrary\Loaded Libraries下面的所有内容删除,重新打开altium designer添加库即可. AD09 "Access violation at address 0C241A06 in module 'IntegratedLibrary.DLL" 错误解决办法

【XS128】Link error L1822 symbol _FADD / _FSUB/ _FDIV/ _FMUL.....错误解决办法

这是飞思卡尔 XS128平台比较常见的LINK错误. 但是要解决起来也比较头疼. 很多人也许有这样的经历,整个工程目录是在别人做过的所有文件拷贝过来然后修改代码符合自己项目要求而产生的.这就发生了一个问题, 当初新建工程时的很多配置,比如预处理器配置,就会出现不适用当前项目.比如,本文所要提到的链接错误. 这个错误发生于: 原工程在新建的时候在某一步有与float相关的三个选项,如图: 如果你选择了none,那么不幸的是,如果在代码中加入关于float的四则运算等代码,就会出现该链接错误. 然而

XML解析适配 'libxml/tree.h'file not found 错误解决办法

Xcode 'libxml/tree.h'file not found 错误解决办法 在工程的"Build Settings"页中找到"Header Search Path"项,添加"/usr/include/libxml2".在"Other Linker Flags"项,添加"-lxml2" XML解析适配 'libxml/tree.h'file not found 错误解决办法

UI进阶 XML解析适配 'libxml/tree.h'file not found 错误解决办法

Xcode 'libxml/tree.h'file not found 错误解决办法 在工程的"Build Settings"页中找到"Header Search Path"项,添加"/usr/include/libxml2".在"Other Linker Flags"项,添加"-lxml2" UI进阶 XML解析适配 'libxml/tree.h'file not found 错误解决办法

The database could not be exclusively locked to perform the operation(SQL Server 5030错误解决办法)(转)

Microsoft SQL Server 5030错误解决办法 今天在使用SQL Server时,由于之前创建数据库忘记了设置Collocation,数据库中插入中文字符都是乱码,于是到DataBase的Options中修改Collocation,出现了The database could not be exclusively locked to perform the operation这个错误,无法修改字符集为Chinese_PRC_90_CI_AS. 解决办法找了很久才找到,如下: 1.执

Unable to locate package错误解决办法

新装了VMWare Player,结果装上Ubuntu12.04后安装软件都提示:Unable to locate package错误,解决方法非常简单,终端输入以下命令即可: [cpp] view plaincopy sudo apt-get update 究其原因,应该是刚安装,软件源还来不及更新,所以才会无法找到包.我猜测在更换软件源之后,也很可能会出现这个问题. Unable to locate package错误解决办法,布布扣,bubuko.com

Exchange2007升级到2010是遇到错误 解决办法分享

现有的exchange 2007服务器,现在安装了exchange2010,到安装邮箱角色时报错,请各位帮忙看下,报错信息如下: 最佳方法:如果AD中对注册表有禁用的,请先取消注册表的禁用设置 然后更新域:gpupdate /force 处理方法一: Delete Database from ADSIEdit. Adsiedit.msc>>>Configuration>>> Services>>>Organisation>>>Admi