2012-09-19 140 views
0

我有一個用Java編寫的客戶端,它使用與外部web服務交談的Springsource工具包(即@Service屬性)(完全獨立,與我無關公司)通過HTTPS。我在marshalSendAndReceive步驟中遇到了一個異常,該步驟聲明內容類型將以text/html而不是預期的text/xml形式返回 - 並顯示消息「可能是錯誤消息?」從Java/spring web服務客戶端檢查請求/響應

該webservice本身是下一個版本的服務的公共測試,並從相同的代碼調用實時服務工作正常。我正在調用的這種特殊方法在實時系統上工作正常,但不在測試系統上。

我的預感是,請求的測試系統格式不正確 - 儘管根據發行說明,響應應該在架構中發生變化 - 並且這導致服務返回錯誤地被錯誤解析的錯誤我的客戶。我收到所有請求的錯誤,即使那些(根據發行說明)沒有改變。

我試圖使用Fiddler和Wireshark來檢查流量,但無法讓Fiddler看到它(我懷疑這是在代理服務器上使用STS時的Tomcat問題),Wireshark無法解碼HTTPS的東西(我沒有鑰匙)。我無法使用HTTP,因爲如果我嘗試,外部服務會返回403 Forbidden。

我不是原始開發人員,我甚至不是Java開發人員。我是一位經驗豐富的.NET開發人員,因此任何與此類似的類比都會被理解 - 否則,我是一個虛擬和短語您的指示/問題/可能相應的幫助。按照我的前任的指示,我使用XmlBeans從WSDL創建了一個JAR文件,並將其添加爲引用的庫,但我無法確定我是否正確地完成了該操作,甚至不知道它在做什麼。它似乎對事物沒有明顯的影響。

如何調試此問題,並驗證它是否對我的客戶或其服務有問題?

+0

您是否將您的請求上的'Accept'標頭設置爲'text/xml'(或者'application/xml')? –

+0

我看不到任何設置 - 不在配置或Java中。 –

+0

原來我的前任留下的web服務地址,以及服務支持人員提供的不同地址都是錯誤的。在VS2012中使用'添加服務參考'幫助我找到正確的地址!埃裏克B的回答是正確的,儘管我的笨蛋。 –

回答

0

我的第一個目標是讓小提琴工作。在黑暗中調試很困難。但是,當我討論在STS中使用Tomcat運行的客戶端時,我感到困惑。你的客戶是一個Web應用程序嗎?

您是否嘗試過其他工具,如SoapUI以驗證服務是否按預期迴應您的請求?

+0

這是一個web應用程序,但我感興趣的通信是應用程序與此外部web服務交談。我會看看SoapUI,我以前從來沒有聽說過。我覺得webservice(大型服務,數百個用戶,在他們自己的內部測試之後的公共集成測試)沒有錯。 –

+0

SoapUI只是一個客戶端,它允許您基於提供的WSDL測試Web服務。您可以查看服務器的響應以及在需要時跟蹤數據。一個偉大的WS調試工具。它至少會允許您檢查返回的流量,看它是否符合您的預期結果。 –

相關問題