1. 程式人生 > >java.io.IOException: Server returned HTTP response code: 411 for URL: http://upas.d.com/upas/......

java.io.IOException: Server returned HTTP response code: 411 for URL: http://upas.d.com/upas/......

最近專案升版本,遇到一些問題,寫出來分享一下:

第一,pom.xml檔案中版本的資訊已經改了,但是在編譯打包的時候,還有以前的版本資訊,觀察Dependency Hierarchy,發現別的包依賴以前的版本資訊,在pom.xml中強行轉化成新版本:


但是改過後,以前的版本資訊還是存在,百思不得其解,後來找同事幫忙解決,才發現我這個MavenWeb專案,在WEB-INF下,有一個lib檔案下,下面有jar包的資訊,問題就出在這裡,刪掉jar包,以前的版本在釋出的時候就不會被引入:


第二,專案編譯釋出後,因為是web專案,網頁可以正常訪問,但在本地遠端呼叫時,卻報如下錯誤:


411錯誤碼的意思是:需要有效長度, 伺服器不接受不含有效內容長度標頭欄位的請求

官方解釋:The server refuses to accept the request without a defined Content- Length. The client MAY repeat the request if it adds a valid Content-Length header field containing the length of the message-body in the request message.

網上大多推薦的方法:


我的專案中通過HessianProxyFactory來遠端呼叫,並不能在請求頭中設定一個Content-Length=0

後來,發現是我的hessian版本過低,為3.1.5,把hessian版本升級為4.0.38,解決問題