【发布时间】:2017-03-13 19:32:06
【问题描述】:
我有一个包含三个模块的 EAR 应用程序:
- bean 在“app-ejb”模块中
- 远程接口在“app-remote”中
- 网络服务在“app-war”中
- app-ejb 和 app-war 使用 app-remote 作为库。
全部打包在“app.ear”中。
这工作正常,但现在我必须在 EAR 应用程序之外使用相同的 bean,并且注入不起作用。
我在 app-ejb 中有:
@Stateless
@LocalBean
public class Services implements ServicesRemote {
[...]
}
以及他在 app-remote 中的远程界面:
@Remote
public interface ServicesRemote {
[...]
}
在我的 app-war 中,我可以毫无问题地注入远程 bean:
@Stateless
@LocalBean
public class UseServices {
@EJB
private ServicesRemote services;
[...]
}
无论如何,在我的外部 ejb 应用程序中,作为独立部署并使用与库相同的 ejb-remote,如果我尝试像这样注入相同的 EJB:
@Stateless
@LocalBean
public class UseServicesFromAnotherApp {
@EJB
private ServicesRemote services;
[...]
}
Glassfish (4.1) 给我一个错误“Class [Lcom/[...]/ServicesRemote; ] not found”。
这是预期的吗?如何正确注入远程 bean?
【问题讨论】:
-
你能发布整个日志错误吗?
-
没有“完整的错误日志”,我得到的唯一一行是:[2016-10-31T14:38:47.657-0300] [glassfish 4.1] [SEVERE] [] [global] [tid : _ThreadID=43 _ThreadName=admin-listener(3)] [timeMillis: 1477935527657] [levelValue: 1000] [[ Class [Lcom/..../ServicesRemote; ] 未找到。加载 [ class com....UseServicesFromAnotherApp ]]] 时出错
标签: java jakarta-ee ejb