2009-10-14 99 views
1

我使用jboss-IDE。所以,我在同一個項目中創建了一個包含許多EJB的項目。現在,我需要在EJB B中由EJB A公開的功能。因此,我需要在EJB B中調用EJB A.我該怎麼做?如何從另一個EJB調用EJB?

P.S:處理EJB 2

回答

1

問題其實是「如何調用EJB?」?因爲如果你知道如何調用EJB B讓我們說一個webapp或Swing客戶端,那麼你在技術上就知道如何從EJB B調用EJB A.

現在,正如其他人指出的那樣,您可能想使用本地接口而不是遠程接口,以避免遠程處理的開銷,但不知道您的EJB是否將部署在多個VM上,因此無法爲您解答此問題。

沒有關於事務性需求的更多信息,我不能說您是否可以安全地調用EJB A上的現有方法,或者是否應該公開具有其他事務性設置的克隆版本。

話雖如此,調用EJB 2.0的傳統方式是使用Service Locator

0

我對EJB生疏,但如果你想2點EJB的之間進行通信在本地就可以使用本地接口與遠程。你可以看看this resource瞭解更多詳情

0

你絕對需要使用EJB 2.0嗎?如果不是的話,我會跳到EJB 3.使用註釋和EJB注入將使您的生活從長遠來看變得更容易。

否則......如果你一定要... this page on devx.com summarizes it nicely.

從本質上說,你要創建一個本地接口,爲您的bean和修改部署描述符,以利用當地的參考,而不是一個遠程引用。這有兩個目的:避免RMI調用,並避免序列化/反序列化(因爲可以通過常規引用)。這也適用於EJB 3。

一旦您正確設置了本地引用,您將需要執行該bean的JNDI查找。請參閱文章以獲得簡短/甜蜜的示例。一旦你完成了查找,你就可以隨時隨地使用接口公開的任何方法。

如果你需要一個更徹底的例子,我可以添加一些片段,但是對EJB的基本理解和那篇文章應該很好地涵蓋基礎。