2012-01-30 15 views
4

これは(=ヌル)を動作するようには思えないんJNDI注入が動作しません、ルックアップは

appName = (String) new javax.naming.InitialContext().lookup("java:app/AppName"); 

私は、の参照プロパティがの名前の代わりに@Resourceにある多くの例を見つけました。しかし、私はそれについて何も見つけることができません、私はそれが名前でなければならないと確信しています。

参考までに、Glassfish 3.1を使用しています。シングルトンBeanの@PostConstructメソッドからappNameにアクセスしています。

+1

誰ですか? – ymajoros

答えて

4

エントリが既にjava:app名前空間で定義されており、定義されていないため単に参照されているため、この場合は "name"の代わりに "lookup"を使用するのが正しいです。これはJava EE 6 specificationGlassfish 3.1が実装されています)の一部です:@Resource#lookup()

InitialContextを使用してアプリケーション名を検索する代わりに、あなたもlookup属性を使用して@Resourceアノテーションを使用することができます。彼らは-1を入れて、またはそれは純粋に任意である理由を共有したい

@Resource(lookup = "java:app/AppName") 
private String appName; 
+0

ありがとう、それは理にかなって、ドキュメントはちょうどそれを言うようです。しかし、私のjavax.annotation.ResourceはJava EE 5とペアになっているjdk 6のものだったようです。私はJDK7に切り替えました。 – ymajoros

関連する問題