一次webservice查錯

先大概說下情況,使用的oracle service bus做的webservice,應用程序2套部署在不同的weblogic上,各省向國家傳數據OK,國家向各省傳數據原來也OK,突然某一天,其中3個省反映收不到數據,網絡組堅稱沒有調過網絡配置,怎麼辦,只能自己找原因了,
首先通過ping檢查網絡是正常的。
然後自己寫了個簡單的例子部署到服務器端,直接調3個問題省的webservice發送數據,OK,正常。
進行抓包,如圖


然後抓包OSB的包,發現只有tcp發出請求後沒有應答

圖中ip與上面的不一致,因爲當時沒截圖,此截圖是後補的。
tcp發出請求後,沒有應答,而實際對方的端口是可以正常訪問的,分析可能的原因,被防火牆攔截了,可能有以下兩種情況:
1.請求發出後被內網防火牆攔截了
2.請求發出後被對方防火牆攔截了

然後找對方省的信息中心,查驗攔截日誌沒有發現對應的國家端的ip的報文,那麼問題就可能出在我們這邊的防火牆上了,再找到網絡組,理直氣壯的讓他們查程序,ip爲92.5的果然差多了,幾千次請求被攔截,原因是oracle service bus將數據放到<![CDATA[]]>>中,但是這裏生成的卻是<![CDATA[<![CDATA[]]]]>>這樣的,而]]]>>觸發的防火牆的規則導致request被攔截了。剩下的問題就是找到oracle service bus的問題了,這個問題的根本在於oracle service bus拼接報文的問題。

發佈了102 篇原創文章 · 獲贊 24 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章