@Local和@Remote接口 - 通过引用传递vs深层复制

时间:2013-05-27 12:07:31

标签: jboss7.x ejb-3.1

我们有一个应用程序,每个bean有三个接口。一个*BI(业务界面),其中包含所有方法,*LI,其中BI扩展为@Local*RI,也扩展为BI @Remote,但注明为*LI

我想删除所有*RI*BI接口,转而使用@Remote,将它们保留为@Remote,但是存在问题。

本地查找传递参数作为引用,而远程查找使用deepcopy。该应用程序充满了传递引用的期望(仅在通过引用传递时才有效)。

如果我只有{{1}}接口,容器会知道它何时是本地查找,并且在这种情况下通过引用传递工作?

Container是JBoss AS 7.1.1 Final,我们使用EJB 3.1。 提前谢谢。

1 个答案:

答案 0 :(得分:2)

由于本地和远程接口的行为不同,即使本地客户端可能希望使用远程接口。因此,如果容器只是猜测了这个客户端在同一个虚拟机中运行,那么这将是一个问题,让我们给他一个本地界面"。

已经讨论了有关差异的详细信息here

如果您想将所有接口定义保存在一个地方,只需编写一个接口即可 并让它由两个(空)接口继承,并用@Local@Remote注释。