4

私はかなり一般的でなければならないセットアップを持っています:私はdbファイルを備えたH2dbを持っています。スタンドアロンモードでdbを使用しています。Hibernateはdbへのアクセスを提供し、コードをTomcatにデプロイしました。

問題は次のとおりです。dbファイルをに配置しwar、休止状態の構成ファイルに相対パスを指定するだけの良い方法を見つけることができませんでした。

現時点ではc://whatever_db_file_container_dir/dbname、Hibernate構成でへのパスを使用する必要があります。

これにより、ゼロ構成Webアプリをデプロイできなくなります。このセットアップを自己完結型のゼロ構成パッケージに変える方法はありますか?

4

2 に答える 2

2

現在、H2はクラスパス内のデータベースをサポートしていません(機能要求がありますが、まだ実装されていません)。ただし、これは読み取り専用データベースでのみ機能します。残念ながら、H2はデータベースURLのシステムプロパティもまだサポートしていません。

ただし、Hibernateはプログラムによる構成をサポートしています。TomcatでWebアプリケーションのディレクトリを取得する方法はわかりませんが、 catalina.homeとcatalina.baseについては知っています。したがって、アプリケーションを起動するときに、システムプロパティの値を取得catalina.homeし、それに応じてデータベースURLを使用してHibernateシステムプロパティを設定します。私は自分自身を試しませんでしたが、これはそれがどのように機能するかです。

于 2010-10-16T09:30:21.107 に答える
0

機能が実装されるのを待ちたくない場合は、コードでH2(またはHSQL、derby)URLを動的に設定できます。コード例については、http://www.jvmhost.com/spring-hostingを確認してください。

于 2013-11-06T13:13:00.230 に答える