5

Tomcat5 で実行しているアプリケーションの 1 つでシンボリック リンクを使用しようとしています。別のStackOverflowの質問からの助けのおかげで、context.xmlファイルを作成することでそれを行うことができました

/...myapplication/META-INF/context.xml

現在、これを本番サーバーに実装しようとしています。ただし、その上で実行されている他のアプリケーションがあります。そして、別のコンテキストファイルがあります

/...tomcat/conf/context.xml

これらは、すべてのアプリケーションに対してサーバー全体の構成を設定しているようです。conf/context.xml ファイルで allowLinks を使用すると、シンボリック リンクが機能します。conf/context.xml で許可しない場合、META-INF/context.xml で許可したにもかかわらず、アプリケーションのシンボリック リンクが機能しません。

私の質問は、conf/context.xml はすべてのアプリケーションを制御しますか? シンボリック リンクを 1 つのアプリケーションでのみ機能させたい場合、conf/context.xml を削除して、アプリケーションごとに新しいコンテキスト ファイルを作成する必要がありますか? または、myapplication のみでシンボリック リンクを許可する方法はありますか?

4

2 に答える 2

8

どちらの Tomcat 5 コンテキスト ファイルが優先されるか」という質問に対する私の回答を参照してください。

特定のallowLinks質問に関しては、デフォルトでの値conf/context.xmlが優先されます。で何も言わない場合conf/context.xml、デフォルト値はallowLinks="false"にありますconf/context.xml

あなたの だけに変更したい場合は、通常は設定が優先されるため、あなたの中でmyapplication言っても効果はありません。<Context allowLinks="true" ...>META-INF/context.xmlconf/context.xml

ただし、 で言うと、 のすべての設定が最も優先され、 のすべての設定が上書きされます。 <Context allowLinks="true" override="true" ...> META-INF/context.xml<Context>META-INF/context.xmlconf/context.xml

最後に、ファイルの代わりに、myapplication/WEB-INF/context.xmlファイルを使用することをお勧めしconf/Catalina/localhost/myapplication.xmlます。この手法は、Web アプリケーションの根幹である WEB-INF の内容をきれいに保つことができることを意味します。:-)

于 2008-11-27T01:08:10.197 に答える
0

ポイントを追加するだけです。

通常、meta-inf/context.xml は conf/Catalina/localhost/myapplication.xml にコピーされます。

war ファイルを再デプロイすると、conf/Catalina/localhost/myapplication.xml が削除され、上記のように新しいファイルがコピーされます。

これは本当に苦痛です。アプリケーション固有のコンテキストのアイデアは気に入っていますが、これを meta-inf ディレクトリに置くことがどのように役立つかわかりません。

Prod、UAT などの場合、これは本当に苦痛になります。

したがって、サーバーは静的であるがアプリケーション固有のものについては、conf/context.xml に配置することをお勧めします。これには、複数のアプリケーションのコンテキストが保持されているというマイナス点があります。1 つに触れても、うっかりすべてに触れてしまいます。

于 2009-03-04T08:43:20.103 に答える