WSDL文件中address location生成錯誤問題解決
阿新 • • 發佈:2018-12-26
最近在生成環境遇到一個問題,一個渠道呼叫我們的webservice服務報錯了,錯誤原因是他們遠端方式訪問我們的webservice服務,每次需要去讀wsdl文件取到訪問地址,但是出問題時,他們取到的埠是錯誤的。
通過排查發現,正常的時候埠埠是30304,錯誤的時候變成了20140,如下圖(已馬賽克)
我們這個系統的架構是負載下面掛例項,外圍渠道是訪問我們的負載主機的,負載主機只做轉發,不會修改我們的內容
1,第一次嘗試:
問題發生之初,通過排查是否程式碼,jar包或者主機配置變更造成了問題,通過排查,未發現我們專案近期有過程式碼變動,配置檔案也正確配置了,諮詢array負責人,array也未有過程式碼變更
2,第二次嘗試:
通過array和我們兩邊進行抓包分析,發現array不會改變訪問能開的內容,只做一個轉發。
3,第三次嘗試:
深入分析了webservice的wsdl文件的生產方式,結合我們的實際執行場景,分析出wsdl文件中的地址,來源於第一次請webservice服務時,httprequest中的host檔案中的埠,並且會快取起來,後續再次訪問wsdl文件,一直都是這個地址和埠了,所以重啟例項後,等array上的請求轉發到能開後,再去訪問wsdl文件,就會看到埠正常了