我们有一个应用程序,每个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。 提前谢谢。
答案 0 :(得分:2)
由于本地和远程接口的行为不同,即使本地客户端可能希望使用远程接口。因此,如果容器只是猜测了这个客户端在同一个虚拟机中运行,那么这将是一个问题,让我们给他一个本地界面"。
已经讨论了有关差异的详细信息here。
如果您想将所有接口定义保存在一个地方,只需编写一个接口即可
并让它由两个(空)接口继承,并用@Local
和@Remote
注释。