2016-12-23 15 views
0

私は埋め込みのtomcatをmaven-tomcat-plugin経由で使います。そのプラグインのバージョン6では、mvn tomcat6:runを実行すると、サーバーが起動し、contextInitializedメソッドがを実行してから、コネクタがポートを開こうとします。埋め込みのtomcatの再起動

コードに異常がないことが、私はmvn tomcat7:runで起動したときにサーバがcontextInitializedメソッドを起動しようと THENポートとを開きます。

なぜですか?

初期化されたコンテキストを使用して実行中のTomcatを見つけて、新しいインスタンスがそのポートを取得できるように強制終了するので、私は尋ねています。 tomcatがポートを取得できなかった場合、もう動作しないcontextInitializedメソッドをチェックします。埋め込み型のTomcatをダウンタイムなしで再デプロイする別の方法はありますか?

答えて

1

はTC6では、httpsと相互認証を使用し、どのようなユーザーtomcat-users.xmlにregistredているされている場合contextInitialized -methodeは、例えば、connectorについての情報を必要とするという問題がありました。

残念なことに、コンテキスト初期化時に利用できない情報と、users-listがロードされる前(コンテキスト・イニシエート後)に拒否された要求を受け取った要求があります。

なぜtc7でこれを変更したのですか?

何らかの理由で(IDC)複数のトムキャットを使用していますが、解決策はより高いレベルにある方がよいでしょう。

私の提案:別のポートを使用して両方のtomcatでHTTPコネクタを交換し、Apacheのhttpdをインストールし、httpd-configをreloadしてtomcatを切り替えます。

AJP details

+0

ああ、説明のおかげで、意味があります。あなたは問題を解決するための良い提案をしていますか(すべてが適切に初期化されていれば、1つのサーバーしか利用できないはずです)? – dsky

関連する問題