jboss7.x - @Local 和 @Remote 接口(interface) - 通过引用传递与深层复制

标签 jboss7.x ejb-3.1

我们有一个应用程序,每个 bean 具有三个接口(interface)。包含所有方法的 *BI(业务接口(interface)),*LI,它扩展了 BI 并注释为 @Local *RI,它也扩展了 BI,但注释为 @Remote

我想删除所有 *LI*RI 接口(interface)以支持 *BI,将它们保留为 @Remote,但是有一个问题。

本地查找将参数作为引用传递,而远程查找则使用深度复制。该应用程序充满了传递引用的期望(只有在传递引用有效的情况下才有效)。

如果我只有 @Remote 接口(interface),容器会知道它何时是本地查找,并在这种情况下使引用传递起作用?

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

最佳答案

由于本地和远程接口(interface)的行为不同,即使本地客户端也可能想要使用远程接口(interface)。因此,如果容器只是猜测“这个客户端在同一个虚拟机中运行,让我们给他一个本地接口(interface)”,就会出现问题。

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

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

关于jboss7.x - @Local 和 @Remote 接口(interface) - 通过引用传递与深层复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16772884/

相关文章:

java - persistence.xml 中的值在 EJB 中意味着什么?

mysql - 查询jpql获取ManyToMany关联生成的表的值

java - 无法在 Restful Web 服务中使用 EJB

java - 在 JBoss 7 部署结束时执行操作

ejb-3.0 - EJB 远程查找失败并出现 javax.naming.NameNotFoundException

java - 在 jBoss AS 7 中部署 EAR,其中包含 WAR 中的 Web 服务

java - 一个 EJB bean 可以实现多个接口(interface)吗?

java - WildFly - 来自远程客户端的 EJB 调用 - 操作失败,状态为 WAITING

java - 在 EJB 3.1 中,容器如何在技术上代理并有效地欺骗我的无接口(interface)对象?

jpa-2.0 - 使用嵌入式 glassfish v3 进行 JPA + EJB 测试