我們的應用程序是一個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因「服務器遷移」而改變。
有沒有人遇到過這種現象呢?有人知道什麼是錯的,以及如何解決?
感謝,