30

複数のアプリを実行する PCI DSS 準拠の環境があり、サーバーを再起動せずに 1 つのアプリのみを再起動したいと考えています。どうやらこの環境では許可されていないため、マネージャーはありません。

コマンドラインから単一の Web アプリを再起動するにはどうすればよいですか?

4

5 に答える 5

53

パーティーに遅れたことは承知していますが、コマンド ラインからアプリをリロードするためにできるちょっとしたトリックは、アプリケーションの web.xml に移動して、単純にタッチすることです。

cd webapps/<webapp-name>/WEB-INF/

touch web.xml

tomcat は、このファイルの変更に気付くたびにアプリケーションをリロードします。単純にタッチすると、実際にはファイルが変更されず、タイムスタンプだけが変更されます。

于 2016-09-16T09:25:47.183 に答える
33

これが私がそれを行う方法です:

  1. Tomcat ユーザー データベースに「manager-script」ロールを持つユーザーが存在することを確認します。これは通常、 に次のような行があることを意味します${TOMCAT}/conf/tomcat-users.xml
<user username="admin" password="secret" roles="manager-gui,manager-script"/>

そうしないと、クロスサイト リクエスト フォージェリ (CSRF) 保護のために 403 エラーが発生します。

  1. または任意のコマンド ライン ツールを使用curlして URl をフェッチします<yourserver>/manager/text/reload?path=/<context_path>

    curl --user user:secret http://localhost:8080/manager/text/reload?path=/mypath  
    
于 2014-10-10T14:07:07.393 に答える
2

マネージャアプリケーションへのアクセスがなければ、それを行うことはできません。マネージャアプリケーションにアクセスでき、Webブラウザの代わりにコマンドラインを使用したい場合は、tomcat-managerと呼ばれるTomcatを管理するためのこのコマンドラインスクリプトを試すことができます。Pythonが必要ですが、次のようなUnixシェルから処理を実行できます。

$ tomcat-manager --user=admin --password=newenglandclamchowder \
> http://localhost:8080/manager/ reload /myapp

と:

$ tomcat-manager --user=admin --password=newenglandclamchowder \
> http://localhost:8080/manager deploy /myapp ~/src/myapp/myapp.war
于 2013-01-03T06:59:11.177 に答える
0

残念ながら、コマンドラインからこれを行う方法はないと思います。代わりに、Tomcatの別のインスタンスで再起動する必要がある単一のアプリケーションをホストする方法があるかどうかを確認して、他のアプリケーションに影響を与えずにそのインスタンスを再起動できるようにすることをお勧めします。

于 2012-09-29T04:20:48.410 に答える