我有一个包含2个战争文件的耳朵,每个战争包含无状态的ejb和泽西休息类。接口位于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 deployment failure:WELD-001408: Unsatisfied dependencies
错误。当我在stateless-ejb-2中使用@EJB时,会部署耳朵,但是在调用jersey-rest-2时遇到远程查找错误。
这是我的方法调用链:
我不想使用远程ejb调用,因为所有内容都打包在同一个耳中(我想使用@Inject而不是@EJB)但它不起作用。
我想如果我将stateless-ejb-1.java打包到jar并将其放在EJB / lib下,那么它将起作用。但我不想在我的项目中创建一个新模块只是为了将这个文件打包到分离的jar文件中。 解决办法是什么?
答案 0 :(得分:2)
您需要将stateless-ejb-1
移动到EAR中的ejb-jar模块中。
不同WAR文件中的类永远不会彼此可见,即使构建到EAR文件中也是如此。