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 アクション クラスでは、 次のように呼び出しています。

 @EJB
package.BatcRunLocal batchRun;

batchRun.call(Map batc);
4

2 に答える 2

1

Struts2 アクション クラスでは、次のように呼び出しています。

申し訳ありませんが、Struts2 アクションはコンテナーによって注入可能ではないと思います。コンテナーによって管理されるリソースのみがリソースを注入できます。たとえば、サーブレット、CDI Bean、EJB、JAX-RS などです。

そこで、EJB を注入する単純なサーブレットを作成してみます。実際に注入された場合は、すべて正常に動作しています。Struts2 の Action クラスがコンテナーによって管理されていないだけです。それでも null の場合は、問題があります。ログを見て、デプロイが失敗した場所を確認することをお勧めします。

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 に答える