2009-10-14 58 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的基本理解和那篇文章应该很好地涵盖基础。