在远程 EJB 接口中更改本地 EJB 接口 - 客户端应用程序的结果



我有一个使用本地 EJB 接口的 Java EE/JSF 应用程序,我想将业务层与另一个客户端应用程序(在不同的 JVM 中)一起使用。

因此,我需要使用远程 EJB 接口在新客户端应用程序中使用依赖注入。

但是,如果我更改 EJB 接口,我还必须更改"第一个"客户端应用程序的 managedBean 中的所有依赖注入?

本地接口使用逐个引用传递,但远程接口使用逐个深度复制传递。 这意味着 (1) 所有参数和返回值都必须是可序列化的,并且 (2) 您必须依赖于按引用传递,无论是性能(非常大的 Map 等)还是正确性(将对象传递给方法、更改对象、期望结果对调用方可见)。

也就是说,当你说"本地 EJB 接口"时,你的意思是@Local,还是 EJBLocalHome? 如果是前者,那么您可以尝试更改为 @Remote ,它可能只是工作。 如果是后者,则需要更新接口以使用 EJBHome/EJBObject ,这意味着您需要将 RemoteException 添加到接口上的所有方法中,这意味着您至少需要更新调用方来处理异常。

最新更新