0

我正在尝试使用@EJB annotation无状态 bean 来调用。当我打印引用的值时,它是NULL。请帮助我,我完全不知道下一步该怎么做......

代码 :

@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 Class 中, 我是这样调用的:

 @EJB
package.BatcRunLocal batchRun;

batchRun.call(Map batc);
4

2 回答 2

1

在 Struts2 Action Class 中,我是这样调用的:

对不起,但我不认为容器可以注入 Struts2 动作。只有容器管理的资源才能注入资源。例如,servlet、CDI bean、EJB、JAX-RS 等等。

所以,我会尝试创建一个简单的 servlet 来注入 EJB。如果它确实被注入,那么一切正常,只是 Struts2 Action 类不是由容器管理的。如果它仍然为空,那么您确实有问题,我建议您查看日志以查看部署失败的位置。

如果您使用的是 JBoss AS,您会在日志中注意到是否部署了 EJB:JBoss AS 对此非常直言不讳 :-)

我同意@Richard Sitze 的观点:阅读一些关于 Java 命名约定的内容。

于 2012-08-17T08:36:04.053 回答
0

更改@stateless@Stateless


此外,您可能会更加关注代码风格。在这种情况下,类名 (batcRunBean) 应该以大写字母开头:BatcRunBean.

于 2012-08-17T05:08:37.020 回答