アプリケーションのwarファイルがあります。これをルートレベルで展開する必要があります。現在のURLはhttp://localhost:8080/war_name/application_name
です。
ROOT.war
はずです。OutOfMemoryException
スタックトレースと詳細を提供して、について別の質問をすることをお勧めします。おそらく-Xmx
、JVM用に構成することで回避できます。
アプリケーションのwarファイルがあります。これをルートレベルで展開する必要があります。現在のURLはhttp://localhost:8080/war_name/application_name
です。
ROOT.war
はずです。OutOfMemoryException
スタックトレースと詳細を提供して、について別の質問をすることをお勧めします。おそらく-Xmx
、JVM用に構成することで回避できます。
回答:
次の2つのオプションがあります。
ROOT/
tomcatからすぐに使えるディレクトリを削除し、ROOT.war
デプロイする前にwarファイルの名前をに変更します。
(あなたの例から)として、あなたの戦争を展開war_name.war
し、設定するコンテキストルートをでconf/server.xml
あなたのwarファイルを使用します:
<Context path="" docBase="war_name" debug="0" reloadable="true"></Context>
最初の方が簡単ですが、少しうるさいです。2つ目は、おそらくよりエレガントな方法です。
tomcat v.7(バニラインストール)
conf / server.xmlで、ファイルの終わり近く、</Host>
終了タグの直前に次のビットを追加します。
<Context path="" docBase="app_name">
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
docBase属性に注意してください。それは重要なビットです。ルートWebアプリを変更する前にapp_nameがデプロイされていることを確認するか、解凍したwebapp(app_name)をtomcatのwebappsフォルダーにコピーします。スタートアップ、ルートにアクセスして、そこにapp_nameを確認してください!
これらの変更を加えたTomcat 7では、/のmyAPPと/ ROOTのROOTにアクセスできます
<Context path="" docBase="myAPP">
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
<Context path="ROOT" docBase="ROOT">
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
上記を<Host>
server.xml のセクションに追加します
私の回答が他の回答と重複していることはわかっていますが、これはいくつかの利点を持つ完全なソリューションです。これはTomcat 8で動作します:
つまり、tomcatを再起動する必要があるのは1回だけであり、更新後のwarファイルは問題なくデプロイできます。
手順1:server.xmlファイルで、コネクタエントリを見つけて、次のように置き換えます。
<Connector
port="8080"
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector
port="80"
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
ステップ2:<Host ...>
タグ内でコンテキストを定義します。
<Context path="/" docBase="CAS">
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
<Context path="/ROOT" docBase="ROOT">
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
<Context path="/manager" docBase="manager" privileged="true">
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
<Context path="/host-manager" docBase="host-manager" privileged="true">
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
webappフォルダー内のすべてのアプリに対処したことに注意してください。最初の方法は、ルートとメインアプリを位置から効果的に切り替えます。ROOTがオンにhttp://example.com/ROOT
なり、メインアプリケーションがオンになりhttp://example.com/
ます。パスワードで保護されているWebアプリケーションにはprivileged="true"
属性が必要です。
ルートと一致するCAS.warファイルをデプロイするとき(<Context path="/" docBase="CAS">
デプロイメントで更新されないため、管理パネルでそのファイルをリロードする必要があります。
<Context path="/CAS" docBase="CAS">
warファイルをデプロイするマネージャーオプションが無効になるため、コンテキストにを含めないでください。あなたは二つの方法でアプリにアクセスできることをこの意味:http://example.com/
とhttp://example.com/APP/
手順3:ルートおよびマネージャーフォルダーへの不要なアクセスを防ぐために、次のvalve
ようにこれらのコンテキストタグにを追加します。
<Context path="/manager" docBase="manager" privileged="true">
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
addConnectorPort="true"
allow="143\.21\.2\.\d+;8080|127\.0\.0\.1;8080|::1;8080|0:0:0:0:0:0:0:1;8080"/>
</Context>
これにより、管理Webアプリフォルダーへのアクセスは、デフォルトのポート8080を使用する場合、自分のドメイン(偽のIPアドレス)とlocalhostからのユーザーに本質的に制限され、Webインターフェイスを介してwarファイルを動的に展開する機能が維持されます。
異なるIPアドレスを使用している複数のアプリにこれを使用する場合は、コネクタにIPアドレスを追加できます(address="143.21.2.1"
)。
あなたがルートから複数のWebアプリケーションを実行する場合は、サービスタグは、(第2のために別の名前を使用)との文書ベースを変更複製することができ<Context path="/" docBase="CAS">
、たとえばに<Context path="/" docBase="ICR">
。
を削除し$CATALINA_HOME/webapps/ROOT
ます。更新し$CATALINA_HOME/conf/server.xml
、Host要素が次のテキストのようになっていることを確認します。
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="false" deployOnStartup="false">
<Context path="" docBase="myApp"></Context>
Tomcat 8で動作します。autoDeployとdeployOnStartupをfalseに設定して、tomcatがmyApp
2度デプロイされないようにする必要があります。
$CATALINA_HOME/webapps/ROOT
削除する必要があることを忘れていました。削除してもう一度お試しください。
@Rob Hruskaのsolに追加すると、セクション内のserver.xmlのこの設定が機能します。
<Context path="" docBase="gateway" reloadable="true" override="true"> </Context>
注:場合によっては、override = "true"が必要になることがあります。
tomact manager urlを開きます:-http :// localhost:8080 / manager / html /
次に、アプリケーションで、パスが「/」のアプリケーションが
デプロイされていることがわかります。アプリケーションのwarファイルの名前をROOT.warに変更し、パスに配置します:-Tomcatを
起動します追加の設定は必要ありません。
これで、アプリケーションのホームページまたはhttp:// localhost:8080に構成されたURLが表示されます。
C:\Program Files\Apache Software Foundation\Tomcat 8.5\webapps
私のサーバーではこれを使用しており、ルートのautodeployは問題なく動作します。
<Host name="mysite" autoDeploy="true" appBase="webapps" unpackWARs="true" deployOnStartup="true">
<Alias>www.mysite.com</Alias>
<Valve className="org.apache.catalina.valves.RemoteIpValve" protocolHeader="X-Forwarded-Proto"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="mysite_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b"/>
<Context path="/mysite" docBase="mysite" reloadable="true"/>
</Host>