3

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 名を削除することですが、それが他の問題を引き起こすかどうかわかりませんか?

4

2 に答える 2

3

ほとんどの場合は問題ないと思いますが、JUnitテストに別のhibernate.cfg.xmを使用することも検討できます。

于 2009-03-18T20:58:14.237 に答える
0

設定ファイルで value = "sessionFactory " の属性名を削除すればOKです。

于 2012-08-27T16:11:25.017 に答える