2010-12-17 61 views
0

我正在研究基於WSDL的Web服務並使用Apache Axis 2.我不是Web服務的專家,我正在與之合作的人聲稱按順序對於這個特定的Web服務來說,兩個調用必須在同一個連接上進行,即使用http keep-alive(基本上有一個「commit transaction」方法,需要在「save」方法之後調用)。這似乎是一個很常見的問題,但我在Google上沒有發現任何問題。在同一個連接上進行Web服務調用

我想知道是否有辦法明確告訴Axis做到這一點。另外,我如何驗證兩個呼叫是否確實在同一個連接上進行。我想像wireshark這樣的HTTP監控軟件可能會告訴我這一點,但我還沒有安裝它。

回答

1

與您一起工作的人是錯誤的。即使可以通過使用保持活動來處理通過單個TCP連接的多個請求來優化HTTP,該優化對於主叫方或被叫方而言應該是透明的,例如,如果客戶端在保持連接的連接上發出兩個請求,或者它使用兩個單獨的連接,則無關緊要。

Java庫(客戶端的HttpURLConnection和服務器端的Servlet API)甚至不提供對此信息的訪問權限,因此使用的軟件無法知道HTTP請求如何實際執行。

+0

我唯一剩下的問題是,如果有一個不接受任何參數的提交事務方法,服務器如何知道事務? Web服務/ Axis是否包含一些會話跟蹤機制,就像每個請求一起傳遞的唯一會話ID?否則,創建我正在使用的Web服務的人不知道他們在做什麼,這是不太可能的。 – Otto 2010-12-17 18:57:16

0

您可以使用nmap link text來查看每個端口上實際運行的內容。

但是,如果您同時進行2個調用,axis2將拋出端口已綁定錯誤。任何端口不能同時處理2個請求(我的意見)。也許你可以排隊並連續進行。但只需確認其他來源。

相關問題