Hibernate と Spring (プログラム構成) に基づく Web プロジェクトがあります。Hibernate マッピングは、JAR にアーカイブされたパッケージで提供されます。
セッションファクトリを初期化するときは、次のように呼び出していました。
sessionFactory.
setMappingDirectoryLocations(new Resource[]{
new ClassPathResource("org/all/theway/to/hibernatemappings")});
マッピングファイルを探す場所をHibernateに伝えるため。「org/all/theway/to/hibernatemappings」は、hbm.xml ファイルを含むパッケージです。マッピングを含むプロジェクトもチェックアウトされ、私の Web プロジェクトにリンクされているため、これは Eclipse (GWT 開発モード) 内で正常に機能しました。ただし、war を作成して Tomcat にデプロイすると、クラスパス リソースの取得に失敗します。
Spring の ClasspathResource javadoc は次のことを暗示しています。
しかし、代わりに何をしますか?代わりに setMappingJarLocation を使用することもできますが、Spring コンテキストで jar ファイル名をハードコードするのは好きではありません。さらに、試してみると、これも IDE 内でしか機能しませんでしたが、Tomcat 内では同じファイル パス (WEB-INF/lib/file.jar) が機能しませんでした。これはまた、これはい解決策になると私に信じさせます。
jar ファイルを使用せずに機能する回避策はありますか?