hibernate.cfg.xml ファイルで SessionFactory の JNDI 名を設定する方法があります。ただし、Web アプリケーションで SessionFactory を取得するために JNDI ルックアップを明示的に使用していない場合、JNDI 名を付けなくても大丈夫ですか?
私が質問する理由は、JNDI 名を設定しなくても、JUnit テストが正常に実行されるからです。しかし、hibernate.cfg.xml の sessionfactory タグに「name」のみを指定してセットアップすると、最初に次のように表示されます。
WARN [WebApp:SessionFactoryObjectFactory.addInstance] Could not bind factory to JNDI
そして例外をスローします:
javax.naming.NoInitialContextException:Need to specify class name in environment or system property, or as an appletparameter, or in an application resource file:
だから私の回避策は、hibernate.cfg.xml から JNDI 名を削除することですが、それが他の問題を引き起こすかどうかわかりませんか?