@EJB依赖注入失败
我试图用@EJB annotation
来调用一个无状态bean。当我打印参考值时,它是NULL。请帮我,我下一步该怎么做完全糊涂了......@EJB依赖注入失败
代码:
@Local
public interface BatcRunLocal {
public void call(Map batc);
}
@stateless
public class batcRunBean implements BatcRunLocal {
public void call(Map batc) {
//Some code here .
}
}
在Struts2的Action类, 我打电话像这样:
@EJB
package.BatcRunLocal batchRun;
batchRun.call(Map batc);
将@stateless
更改为@Stateless
。
另外,您可能会更关注代码风格。在这种情况下,类名称(batcRunBean)应该以大写字母开始:BatcRunBean
。
在Struts2的Action类,我打电话是这样的:
我很抱歉,但我不认为Struts2的行动是由容器注射。只有由容器管理的资源才能注入资源。例如,servlet,CDI bean,EJB,JAX-RS等等。
所以,我会尝试创建一个简单的servlet来获取EJB注入。如果它确实被注入,那么一切正常,只是Struts2 Action类不是由容器管理的。如果它仍然为空,那么你确实有问题,我建议查看日志,看看部署失败的位置。
如果您正在使用JBoss AS,你会在日志中看到,如果EJB部署得到:JBoss AS中是这个:-)
畅所欲言,我@Richard Sitze同意:阅读一些关于Java命名约定。
实际上,我发现确实有可能将EJB注入到Struts2动作(!!)中,但它需要额外的配置:http://struts.apache.org/2.3.3 /docs/cdi-plugin.html – jpkrohling 2012-08-17 08:38:54
请指定您的EJB应用程序服务器;名称和版本号。 – 2012-08-17 05:10:08
我正在使用EJB 3.0,Jboss 5.1 – Esh 2012-08-17 05:19:35