2011-01-31 68 views
1

我想知道是否可以在沒有servlet的EJB模塊中創建XML-RPC服務器組件。我知道EJB通常使用RMI作爲通信協議,但是如果我想省略RMI,該怎麼辦。如果我想通過不同的方式(如XML-RPC)在EJB和Web模塊(WAR)或其他客戶端之間交換數據,該怎麼辦?EJB模塊中的XML-RPC服務器

EJB模塊是否可以作爲獨立的單元工作,並將其狀態和服務公開爲XML-RPC服務器?

我仍然可以通過RMI與WAR連接的EJB模塊,而此WAR將通過servlet公開這些服務。然後其他WAR或其他客戶可以稱之爲第一個WAR。這是對的還是有其他的可能性?

回答

0

您可能想要的是使用Spring Remoting來通過例如JAX-WS公開您的EJB。 Spring會自動創建servlet來處理你的請求。壞消息是你必須從你構建的遠程服務中調用你的EJB--這意味着一些樣板代碼。它應該是非常直截了當的。

您可能會考慮的其他可能性是Restlet可用於構建寧靜的服務。

0

在EJB3中,您的服務bean只是帶註釋的POJO。您可以簡單地使用@WebService(以及該系列註釋的其餘部分)註釋相同的POJO,以將相同的服務公開爲Web服務。

我意識到這不是嚴格要求的,因爲以這種方式公開的服務的實現是使用SOAP消息的JAX-WS。但我認爲它達到了你的意圖。