2010-04-16 45 views
1

我們的應用程序是一個web服務客戶端(軸1)到第三方web服務(也是軸1)。我們現在使用它已有好幾年了。有時Axis webservice調用失敗,access.log顯示內容!

自從幾個星期以來,我們(作爲客戶端)在調用webservice時有時會得到HTTP狀態400(錯誤請求)或讀取超時。

奇怪的是,服務的access.log顯示部分請求或響應,而不是URL。它看起來像這樣(看起來像請求字符串的結尾)

x.x.x.x -> y.y.y.y:8080 - - [timestamp] "POST /webservice HTTP/1.0" 200 16127 0 
x.x.x.x -> y.y.y.y:8080 - - [timestamp] "POST /webservice HTTP/1.0" 200 22511 1 
x.x.x.x -> y.y.y.y:8080 - - [timestamp] "il=\"true\"/><nsl:text xsi:type=\"xsd:string\" xsi:nil=\"true\"/></SOAPSomeOperation></soapenv:Body></soapenv:Envelope> Axis/1.4" 400 299 0 

或(一些字符串出來的是什麼樣子的要求)

x.x.x.x -> y.y.y.y:8080 - - [timestamp] ":string\">some text</sometag><othertag>moretext" 400 299 0 

或在其他一些情況下,它看起來像兩個請求拋在一起(...意味着xml字符串被遺漏):

x.x.x.x -> y.y.y.y:8080 - - [timestamp] "...</someop></soapenv:Body></soapenv:Envelope>:xsd=\"http://www.w3.org/2001/XMLSchema\"...</soapenv:Body></soapenv:Envelope>" 400 299 0 

應用程序日誌不提供任何提示。這種電話的頻率是該服務的所有電話的1%。迄今爲止我唯一的鑑別者就是它發生這種情況,因爲操作告訴我們服務URL因「服務器遷移」而改變。

有沒有人遇到過這種現象呢?有人知道什麼是錯的,以及如何解決?

感謝,

回答

0

我們沒有這個確切的行爲,但我們面臨的軸1,使我們遭受了很多的一些缺陷。其中一個錯誤的類是Axis的HttpSender,它似乎不是線程安全的,並且有一個bugs

訪問日誌錯誤的不規則可能意味着它實際上與線程安全相關。無論如何,如果您有機會擺脫Axis 1,立即執行。它已經快5歲了,實際上死了很多瑕疵產品。