【发布时间】:2014-05-24 10:21:12
【问题描述】:
我在部署 Java EE 应用程序时遇到了一些问题,可以参考一些建议。
我要部署 3 个组件:
- 集成层(数据):POJO 和 CDI Bean - JAR 文件
- 应用层 (BL):EJB、CDI Bean 和 POJO - JAR 文件
- 表示层:Servlet 等 - WAR 文件
理想情况下,我希望能够在同一 Java EE 服务器中部署集成和应用层 JAR,但作为单独的 JAR(因为我可能希望稍后更改硬件配置并将它们分成两个不同的服务器在两台不同的机器上)。
问题是我无法让 CDI 注入从集成层 JAR 到应用层 JAR 工作。服务器说(而且可能是正确的)无法解决注入问题。
到目前为止,我想出了这些可能的解决方案:
- 将两个 JAR 打包到一个 EAR 文件中(也可以放入 WAR 中......),然后部署它
- 在不同层之间使用 JNDI(可能创建一个 CDI 生产者来根据 JNDI 名称或类似名称进行通用注入)
- 在集成层中,将对象注入应用层(DAO)EJB 而不是 CDI bean
我不喜欢这两种解决方案(尤其是最后一种),因为它们限制了我未来的部署选项。第二种解决方案不限制我,但在某些时候它可能会变得乏味(当我积累大量代码时)。
最后,我的问题是:
有没有我还没有找到的选项,可以让我在 CDI 注入工作的同一台服务器上部署两个 JAR?如果在某些时候我将 JAR 分成不同的服务器,可能仍然可以工作?
【问题讨论】:
标签: java jakarta-ee deployment ejb cdi