簡體   English   中英

如何從另一個EJB調用一個EJB?

[英]How to call an EJB from another EJB?

我使用jboss-IDE。 因此,我在同一項目中創建了一個包含許多EJB的項目。 現在,我需要EJB B中的EJB A公開的功能。因此,我需要在EJB B中調用EJBA。我該怎么做?

PS:處理EJB 2。

問題實際上是“ 如何調用EJB? ”嗎? 因為如果您知道如何從Web應用程序或Swing客戶端調用EJB B,那么您從技術上就知道如何從EJB B調用EJBA。

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

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

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

我對EJB感到很生疏,但是如果您想在兩個EJB本地之間進行通信,則可以使用本地接口還是遠程接口。 您可以查看此資源以獲取更多詳細信息

您是否絕對需要使用EJB 2.0? 如果沒有,我將跳到EJB3。從長遠來看,使用批注和EJB注入將使您的生活變得更加輕松。

否則...(如果必須)... devx.com上的此頁面很好地總結了它。

本質上,您將要為bean創建一個本地接口,並修改您的部署描述符以利用本地引用而不是遠程引用。 這有兩個目的:避免RMI調用,以及避免序列化/反序列化(因為因此可以傳遞常規引用)。 這也適用於EJB 3。

一旦正確設置了本地引用,就需要對bean執行JNDI查找。 請參見本文中的簡短示例。 查找完成后,就可以使用該接口公開的任何方法來發揮作用。

如果您需要一個更全面的示例,我可以添加一些代碼片段,但是對EJB和該文章的基本理解應該很好地涵蓋了基礎。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM