2

私は Tomcat にあまり詳しくありませんが、私のチームは、多数のサーバーにわたって Tomcat でホストされている Java サーブレットを中心に展開する複雑なプロジェクトを継承しています。カスタム構成管理ソフトウェアを使用して server.xml を書き出し、server.xml に書き込まれたさまざまなリソース (接続プール、Bean、サーバー変数など) がサーブレットを構成します。これはすべて順調です。

ただし、一部のリソースの名前は事前にわかりません。たとえば、サーブレットは、オペレーターによって構成された任意の数の「アノニマイザー」にアクセスする必要がある場合があります。各アノニマイザーには、固有の名前が関連付けられています。次のような Java Bean を使用して、各アノニマイザーを作成および構成します。

<Resource
  name="bean/Anonymizer_toon"
  type="com.company.tomcatutil.AnonymizerBean"
  factory="org.apache.naming.factory.BeanFactory"
  className="teAnonymizer"
  databaseId="50"
/>
<Resource
  name="bean/Anonymizer_default"
  type="com.company.tomcatutil.AnonymizerBean"
  factory="org.apache.naming.factory.BeanFactory"
  className="teAnonymizer"
  databaseId="54"
/>

ただし、これには、可能性のあるすべてのリソース名について、事前にサーブレットの context.xml ファイルに明示的なエントリを用意する必要があるようです。明示的な context.xml エントリをワイルドカードに置き換えるか、この種の問題に対するより良い解決策があるかどうかを知りたいです。

現在:

  <ResourceLink name="bean/Anonymizer_default"
                global="bean/Anonymizer_default"
                type="com.company.tomcatutil.AnonymizerBean"/>

  <ResourceLink name="bean/Anonymizer_toon"
                global="bean/Anonymizer_toon"
                type="com.company.tomcatutil.AnonymizerBean"/>

次のようなものに置き換えられます。

  <ResourceLink name="bean/Anonymizer_*"
                global="bean/Anonymizer_*"
                type="com.company.tomcatutil.AnonymizerBean"/>

ただし、これが可能かどうか、または正しい構文が何であるかはわかりません。これを処理するためのより良い方法について誰か提案できますか?

4

2 に答える 2

1

それが必要かどうかはわかりませんが、Tomcat用に独自のカスタムリソースファクトリを作成することを検討することをお勧めします。Tomcatを介したすべてのリソースの一般的なドキュメントは次のとおりです。Tomcatリソース

于 2008-09-16T02:37:46.553 に答える
1

私はこれに出くわしたことはありませんが、必要なさまざまな AnonymizerBeans をすべて明らかにするリソースとして AnonymizerService のようなものを用意する方が簡単かもしれません。この方法では、ワイルドカードに問題がなく、リソースを 1 つだけ Web アプリケーションに公開するだけでよく、明確に定義され、よく理解されたパスに戻ります。

最初の質問から約1か月後に役立つことを願っています...

于 2008-10-19T20:52:33.927 に答える