使ってみた
@Resource(mappedName = "jms/ConnectionFactory")
private static ConnectionFactory connectionFactory;
@Resource(mappedName = "jms/Queue")
private static Queue queue;
Glassfish (4.0) で実行されているアプリケーション内で JMS をインスタンス化します。
NetBeans (7.4rc1) ウィザードを使用してこれらのリソースを作成したところ、このコネクタ リソースを使用して /setup/ に glassfish-resources.xml が作成されていることがわかりました。Glassfish のasadmin list-jms-resourcesコマンド (および Web ベースの管理ページ) で、リソースが利用可能であることを確認しました。
しかし、アプリケーション内でこれらのフィールドにアクセスしようとすると、それらはnullになります。
この問題は、Eclipse でアプリケーションを実行しているときに発生する可能性があることを確認しました (Eclipseで jms の例を実行している場合、リソース インジェクションは機能しません)。ただし、NetBeans からアプリケーションを開始します (これにより、統合された Glassfish が自動的に開始され、すべてが出力されると思いました)。すぐに使える)。
@Resource を使用して Java EE 6 および Glassfish 3.1 でリソースを注入する際のトラブルも見ましたが、ルックアップ名が既に正しいことをクロスチェックしました。
JNDIルックアップを機能させるために私が気にかけなければならない他のヒントはありますか?