您如何将 @Inject 与带有(一个或多个)WAR 文件的 ejb-jar 一起使用?
How do you use @Inject with an ejb-jar with (one or more) WAR files?
使用 GlassFish,为了保持整洁,我想将所有业务逻辑放入一个 EJB JAR 中。然后我有 2 WAR 个文件。
- 应用程序前端-war
- 应用后端-war
- app-logic-ejb
每个 WAR 文件都需要使用 app-logic-ejb JAR 中的 EJB。这个 EJB JAR 包含主要的持久性单元。但是我发现 WAR 文件中任何 Java 的任何 app-logic-ejb EJB 的 @Inject 都不起作用。
此外,我正在努力避免使用 EAR。
在Java EE 7 tutorial的帮助下终于搞定了。
即使 app-logic-ejb 中的 bean 在同一个 GlassFish 上,也需要将它们注释为远程 bean。然后 WAR 文件使用 @EJB 注入(而不是 @Inject)到 WAR 文件中的正确接口。
@EJB
TestBeanInterface t;
要在 EJB JAR 和 War 文件之间共享接口,需要一个 Java 库。
所以为了让它工作,事实证明我需要:
- 应用程序库
- app-logic-ejb
- 应用程序前端-war
- 应用后端-war
使用 GlassFish,为了保持整洁,我想将所有业务逻辑放入一个 EJB JAR 中。然后我有 2 WAR 个文件。
- 应用程序前端-war
- 应用后端-war
- app-logic-ejb
每个 WAR 文件都需要使用 app-logic-ejb JAR 中的 EJB。这个 EJB JAR 包含主要的持久性单元。但是我发现 WAR 文件中任何 Java 的任何 app-logic-ejb EJB 的 @Inject 都不起作用。
此外,我正在努力避免使用 EAR。
在Java EE 7 tutorial的帮助下终于搞定了。
即使 app-logic-ejb 中的 bean 在同一个 GlassFish 上,也需要将它们注释为远程 bean。然后 WAR 文件使用 @EJB 注入(而不是 @Inject)到 WAR 文件中的正确接口。
@EJB
TestBeanInterface t;
要在 EJB JAR 和 War 文件之间共享接口,需要一个 Java 库。
所以为了让它工作,事实证明我需要:
- 应用程序库
- app-logic-ejb
- 应用程序前端-war
- 应用后端-war