【问题标题】:EJB Injection for Servlet - JBoss AS 7Servlet 的 EJB 注入 - JBoss AS 7
【发布时间】:2013-01-08 12:39:39
【问题描述】:

我正在尝试使用 JBoss7 将 EJB 注入到 servlet,但它不起作用。该代码在 JBoss 6 上运行良好,我将 EJB 代码从 WAR 以及与 WAR 的接口打包出来,但我没有在 SERVLETS(GWT Servlets) 中注入。

我的代码看起来像

界面:

@Local
public interface MyService{
}

实施:

@Stateless(name = "MyService")
@TransactionManagement(TransactionManagementType.CONTAINER)
public class MyServiceImpl implements MyService {
}

小服务程序

@EJB(name = "MyService")
private MyService service;

同样的实现在 JBoss AS 6 中运行良好。我没有想法了。请帮忙。

【问题讨论】:

  • 可能是因为在 JBoss AS 7 中你有 JBoss 模块并且每个部署都存在于它自己的“模块”中;因此它看不到它之外的任何文物?尝试将其包装到一个 EAR 中或定义 WAR 和 EJB-JAR 之间的模块依赖关系。

标签: java ejb jboss7.x


【解决方案1】:

如果你的EJB 只是一个本地的,你可以把所有的东西都放在战争中。

如果接口只有一个实现,您可以删除EJB 的名称,容器将根据类型解析EJB 注入。 (您可以将接口与EJB 3.1 一起删除)。

如果您需要更多,您应该提供存档(EARWAR)结构和一些日志条目(EJB 列表 + 注入时出错)。

【讨论】: