2012-08-28 74 views
2

編輯該問題以提高清晰度。何時使用Java SOAP API

我在學習基於SOAP的Java Web服務。 我使用@WebService註釋創建了一個簡單的Web服務。我在本地機器上發佈了它,並在本地機器中使用了該服務。我發現WSDL文件是自動生成的,而SOAP消息是「隱藏的」。我只能通過TCP/IP監視器來跟蹤SOAP消息。

我後來發現Java SOAP API提供了自己創建SOAP消息並使用類/接口(如MessageFactory和SOAPMessage)傳輸它們的選項。

我的問題是,如果自動生成並處理WSDL和SOAP消息,爲什麼我們需要SOAP處理程序來手動創建和使用Java SOAP API發送SOAP消息?

+0

你的問題不清楚。 –

回答

3

我的問題是,如果產生和處理 自動,爲什麼我們需要SOAP處理程序手動創建和使用Java SOAP API 發送SOAP消息的WSDL和SOAP消息的?

因爲你可能想通過SOAP通信更多的控制,建立一個SOAP消息等。當提的MessageFactory和的SOAPMessage,你實際上指的是SAAJ。與JAX-WS相比,SAAJ的運行水平較低,並且具有這種方法帶來的所有優點和缺點。從Java rocking

JAX-WS與SAAJ

從實用的角度來看,使用SAAJ意味着您不使用工具 諸如 '的wsimport' 或 '的WSDL2Java'。這些是與JAX-WS一起使用的,並且 是客戶端可以生成域對象並且幾乎就像他們根本不使用web服務一樣操作的手段。使用 SAAJ,您沒有服務的域視圖。你真的在與管道工作 。使用JAX-WS進行開發可以更快,並且更容易,並且通常不會造成任何控制權損失。但是 JAX-WS是一個方便的層次,如果您掌握了SAAJ的某些命令,那麼知道 會很讓人欣慰,您將準備好執行WSDL接口對您所要求的任何操作。

就我個人而言,我會一直使用JAX-WS。

0

當您使用JAX-WS時,您不需要顯式使用Java SOAP API。但是您選擇直接編寫SOAP消息傳遞應用程序,然後這些API進入畫面。

一個假設的例子是您想要更多地控制SOAP消息解析。您不希望使用xpath處理整個XML,而是處理其中的一部分。