2016-09-26 11 views
0

(これらはJava EEの最初のステップです) Netbeans 8.1でローカルGlassfishサーバーにEJBモジュールをデプロイしています。 私は次のリソース定義されたとのglassfish-resource.xmlを持っている:GlassFishでJava EEインジェクションが動作しない

<jdbc-resource enabled="true" jndi-name="java:app/jdbc/myDataSource" 

そして、私は私はいくつかの方法を試してみました私は、そのリソース

@Named 
public class SimpleDal { 
    @Resource(name = "jdbc/myDataSource", lookup = "java:app/jdbc/myDataSource") 
    private static DataSource ds ; 

を注入しようとしているDAOクラスを持っていますこの作業をするが、私はいつも変数dsにNULLで終わる。私はコンテキストをデバッグしてクエリを実行していますが、私は常にjava:app/jdbc/myDataSourceという名前で終わります。 私は何か正しいことをしていないかもしれませんが、これはJava EEの最初のステップです(私はいつもPHPのために開発しています)。時間を失うのを避けるために誰かが私に指示してくれますか?ありがとう

注:私は、インジェクションを動作させるためにBean上になければならないということをどこかで読んだので、@NamedアノテーションをSimpleDalクラスに追加しました。

+0

CDIでは、静的フィールドで許可されることはほとんどありません。 – thatsIch

答えて

0

だから、しばらくして、私は注射が静的なフィールドで確実に動作しないことが分かった(少なくとも私の設定では)。フィールドをインスタンスフィールドに変更し、それが機能しました。同じ状況に直面している人のためにこの回答を投稿する

関連する問題