1

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"/>
4

2 に答える 2

1

のLOGLEVELorg.springframework.jndi.JndiObjectFactoryBeanをINFOに設定すると、このDEBUG情報は表示されません。

于 2012-09-17T15:35:16.030 に答える
1

私にとって default-value="" も失敗しているようです。空でない文字列値を入力する必要があります。

于 2015-07-06T11:01:59.677 に答える