java - WAR 中的无状态 ejb > 打包到 EAR > 本地 ejb 调用

标签 java dependency-injection ejb cdi ejb-3.0

我有一个包含 2 个 war 文件的耳朵,每个 war 都包含无状态的 ejb 和 jersey 休息类。接口(interface)位于 commons.jar 文件中。 EAR 结构如下所示:

EAR
 -- /lib/commons.jar

 -- rest-1.war
      -- stateless-ejb-1.java
      -- jersey-rest-1.java

 -- rest-2.war
      -- stateless-ejb-2.java
      -- jersey-rest-2.java

我尝试使用 stateless-ejb-2 中的 stateless-ejb-1 和 @Inject 注释,但收到 CDI 部署失败:WELD-001408:不满足的依赖项 部署期间出错。当我在 stateless-ejb-2 中使用 @EJB 时,耳朵已部署,但在调用 jersey-rest-2 时出现远程查找错误。

这是我的方法调用链:

  • jersey-rest-1 > stateless-ejb-1:工作正常
  • jersey-rest-2 > stateless-ejb-2 > stateless-ejb-1:我收到 ejb-1 查找错误

我不想使用远程ejb调用,因为所有东西都打包在同一个耳朵中(我想使用@Inject而不是@EJB),但它不起作用。

我想如果我将 stateless-ejb-1.java 打包到一个 jar 中并将其放在 EJB/lib 下,它就会工作。但我不想在我的项目中创建一个新模块只是为了将这个文件打包到单独的 jar 文件中。 解决办法是什么?

最佳答案

您需要将 stateless-ejb-1 移动到 EAR 中的 ejb-jar 模块中。

不同 WAR 文件中的类彼此之间永远不可见,即使构建到 EAR 文件中也是如此。

关于java - WAR 中的无状态 ejb > 打包到 EAR > 本地 ejb 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43175246/

相关文章:

java - Spring 找不到要 Autowiring 的服务或存储库 bean

java - 如何在代码中确定 Android 设备的纹理内存限制?

java - 类转换异常和泛型(java)

java - Decimalformat:在 JTable 中不需要用逗号替换点

c# - 统一.NET : List of dependencies

c# - 如何在 MVVM 应用程序中将 EventAggregator 注册为单例?

deployment - 如何在ear部署上自动执行 session bean的方法?

java - 企业应用程序 build-impl.xml 抛出错误

java - 基于EJB架构的应用程序的HTTP和UI层面是什么技术?

java - 如何绘制形状