2012-02-29 13 views
0

Tomcatの接続プーリング(組み込みデータベースH2を使用)を使用したいが、実行時にurlを解決したい、つまり相対パスでデータベースのパスを入れようとしている( )。
問題は、それが Tomcat:server.xmlはどのように動的に設定できますか?

  • Tomcatの起動を設置する場所私はハードコードTomcatのパス(でも..\webappsか何かのような相対パスを使用して)

    1. 以来のできない私にはわからないということですスクリプトはinit.dスクリプトから開始しますので、のような のようなものは動作しません。
    2. また、環境変数を入れられないことがわかりました。 server.xml

    これにアプローチするための標準的な方法は何ですか?

  • 答えて

    3

    ファイルパスが必要なHypersonicやSQLLiteのようなデータベースを使用していると仮定しています。

    データベースをCLASSPATHに配置する必要があります(たとえば、WARのWEB-INF/classesなど)。絶対ファイルパスではなくクラスパスリソースリーダーを使用してアクセスします。それは、あなたのアプリをよりポータブルにし、Tomcatが不要なこれらの偽善者を不要にします。

    +0

    +1:あなたは正しいですが、私は 'H2'を使用しています。しかし、これはどのように役立ちますか?' server.xml'の 'JNDI'リソース定義に' url'が必要です。私がクラスパスに入れたらどうしますか? – Jim

    +0

    ファイルベースではなくサーバモードで実行してください:http://hsqldb.org/ – duffymo

    +0

    私はthis.Itで言うことがありませんファイルベースでなければなりません.Soは、動的にサーバーのパスを構成する方法はありません。 xml? – Jim

    0

    オブジェクトファクトリを定義したcontext.xmlにカスタムリソースを追加します。その工場に接続を作成して返します。

    +0

    カスタム 'オブジェクトファクトリ'を実装するにはどうしたらいいですか? – Jim

    +0

    @Jim Tomcat server.xml/Resourceのドキュメントを見てください。そこにカスタムリソースについての記事があります。 Objectファクトリは 'javax.naming.spi.ObjectFactory'のインスタンスです。 – EJP

    関連する問題