Spring jee 名前空間 JNDI ルックアップをデフォルト値で使用しようとしていますが、厄介なスタック トレースが発生しています。デプロイメント環境として Spring 3.1 と tomcat 7 を使用しています。JNDI 変数が context.xml に設定されていない場合があるため、jee:jndi タグの default-value 属性を使用できるようにしたいと考えました。デフォルト値は実際には機能しますが、デフォルト値になるたびにログにスタック トレースがスローされます。ログの抜粋を次に示します。
2012-09-17 08:39:21,099 [main] DEBUG org.springframework.jndi.JndiObjectFactoryBean - JNDI lookup failed - returning specified default object instead
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:325)
...
2012-09-17 08:39:21,113 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Finished creating instance of bean 'coreURL'
この Bean の作成に使用されたスプリング クラスを使用してデバッグを行い、NoInitialContextException がキャッチされた場所と、デフォルトを使用するようにトリガーする場所を確認しました。ただし、デフォルト値があれば、このスタック トレースはログに出力されるべきではないと思います。この仮定は間違っていますか?このエラーを解消するために使用できる設定はありますか? Bean の私の春の構成は次のとおりです。
<jee:jndi-lookup id="coreURL" expected-type="java.lang.String" jndi-name="java:comp/env/my.prop" default-value="http://myserver.com/core"/>