私は戦争を作成し、それを$ CATALINA_HOME/webappsフォルダーに問題なくデプロイしました。次に、c:\ tmp\mywar.warなどの任意の場所での戦争を指すように構成することをテストしたいと思いました。これが$ CATALINA_HOME/conf内のserver.xmlファイルに入れたものです。
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="/blah" docBase="h:/tmp/mywar.war" reloadable="true" />
</Host>
Localhost:8080/blahを読み込もうとすると、Tomcatは404を返します。代わりに、docBaseに爆発した戦争を指摘すると、問題なく機能します。ここで何が欠けていますか?
http://myhost:8080/myTestContext
でサイトを利用できるようにする場合は、$Catalina_home$/conf/localhost/whateveryoulike.xml
に次のように入力します。
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<Context deployOnStartup="true" docBase="C:\path\to\your\docBase\" path="/myTestContext" reloadable="false">
<Manager pathname=""/>
</Context>
コンテキスト構成は、アプリケーションファイル内の/META-INF/context.xmlにある個別のファイルに配置することをお勧めします。
Server.xmlファイルに要素を直接配置することはお勧めしません。これは、Tomcatを再起動せずにメインのconf/server.xmlファイルを再ロードできないため、コンテキスト構成の変更がより侵襲的になるためです。
詳細については、Tomcat7ドキュメントを参照してください: http://Tomcat.Apache.org/Tomcat-7.0-doc/config/context.html#Defining_a_context
私はちょうどこの問題に遭遇しました。少し恥ずかしいことに、道を間違えたからです!
これは、以下のログ(標準エラーのログ)を確認することで確認できます。
[Tomcatインストールディレクトリ]/logs
次のようなものが表示されます。
Jun 16, 2014 12:34:10 PM org.Apache.catalina.core.StandardContext resourcesStart SEVERE: Error starting static Resources Java.lang.IllegalArgumentException: Document base ... does not exist or is not a readable directory
さらに注意してください(これについてはエラーメッセージは表示されません)。展開されたWebアプリではなく戦争を展開する場合は、ファイルのパスを指定およびそれだけではありません)ディレクトリを含む。
そうしないでください。このアプローチは 非推奨 Tomcat 6から:
Tomcat 6の場合、Tomcat 4.xとは異なり、server.xmlファイルに要素を直接配置することはお勧めしません。これは、Tomcatを再起動せずにメインのconf/server.xmlファイルを再ロードできないため、コンテキスト構成の変更がより侵襲的になるためです。