可能會致使這個問題的緣由:java
一、訪問地址通過端口映射apache
二、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內容。服務器
解決方法:ui
axis2使用了Content- Encoding: chunked頭 ,因此咱們在用axis2時爲了不這個問題須要將chunk開關關掉,設置方法(java):編碼
一、 在根據wsdl文件生成的客戶端代碼中加入_serviceClient.getOptions().setProperty(HTTPConstants.CHUNKED, false) 取消chunk限制,加入位置以下:get
二、在客戶端建立鏈接時設置 以下:io
UserServiceStub stub = new UserServiceStub();
stub._getServiceClient().getOptions().setProperty(org.apache.axis2.transport.http.HTTPConstants.CHUNKED,Boolean.FALSE);class