序文 Tomcat は優れた Java コンテナですが、避けられない小さな落とし穴もいくつかあります。ここでそれらを記録しておきます。 始める 質問
シナリオの説明 1. webapps には、projectA と projectB という 2 つのプロジェクトがあります。管理情報インターフェースを除き、他の 2 つのプロジェクトにはセキュリティ検証メカニズムがあります。 2. projectA はフロントエンドとバックエンドに分離されていないため、Java プロジェクト内にも静的リソースが存在します。静的リソースでインターフェース要求を行う場合、パッケージ名は書き込まれません。たとえば、ログインする場合、js コードはサーバーの IP + ポート + 現在設定されている URL (/login) を連結しますが、/login の前に /projectA を追加しません。したがって、ローカルマシンでのテストでは問題はなく、このような問題はデプロイ時にのみ発生します。これも問題であり、以下で解決します。 3.projectBは通常通り実行中のプロジェクトです シナリオ2の解決策 Tomcat で設定ファイルを開き、<Host> タグに <Context> を追加して、それをサーバーのデフォルトのアクセス パスとして設定します。これにより、パッケージ名を回避できますが、この方法は非常に非公式であり、推奨されません。 <ホスト名="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <!-- SingleSignOn バルブ、Web アプリケーション間で認証を共有 ドキュメント: /docs/config/valve.html --> <!-- <Valve クラス名="org.apache.catalina.authenticator.SingleSignOn" /> --> <!-- アクセス ログはすべての例を処理します。 ドキュメント: /docs/config/valve.html 注: 使用されるパターンは、pattern="common" を使用するのと同じです --> <Valve クラス名="org.apache.catalina.valves.AccessLogValve" ディレクトリ="logs" プレフィックス="localhost_access_log" サフィックス=".txt" パターン="%h %l %u %t "%r" %s %b" /> <コンテキスト パス="" docBase="/usr/tomcat8.6/webapps/sc_edu" デバッグ="0" リロード可能="true"/> </ホスト> コードの説明 <コンテキスト パス="" docBase="/usr/tomcat8.6/webapps/sc_edu" デバッグ="0" リロード可能="true"/>
そこで、別のTomcatをインストールし、直接パスマッピングを必要とするプロジェクトのみをデプロイするという解決策があります。 これにより、Tomcatが配置されているディレクトリに戻り、cpコマンドでコピーされます。 $> cp -r tomcat8.5/ tomcat8.6/ 次に、tomcat8.5 の projectA を tomcat8.6 に移動します。 tomcat8.5を削除します <コンテキスト パス="" docBase="/usr/tomcat8.6/webapps/sc_edu" デバッグ="0" リロード可能="true"/> tomcat8.6 では、service.xml に次の変更を加える必要があります。 tomcat8.5 と異なり、ポートが競合しない限り、シャットダウンに対応するポートを 8006 に変更します。 <サーバーポート="8006" シャットダウン="シャットダウン"> リクエストに対応するポートを変更します。原理は上記と同じです <コネクタ ポート="8081" プロトコル="HTTP/1.1" 接続タイムアウト = "20000" リダイレクトポート="8443" /> <Host> タグの内容がコピーされ、対応するマッピング パスに変更する必要があります。 この方法では、2 つの Tomcat を同時に実行することができ、起動とシャットダウンは互いに影響を及ぼしません。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: MySQL 5.7.18 のダウンロードとインストールの詳細な手順
>>: Mysql 5.7.18 MySQL proxies_priv を使用して同様のユーザーグループ管理を実装する
この記事では、Mysql WorkBenchのインストールと設定のグラフィックチュートリアルを参考ま...
序文SQL モードは、MySQL がサポートする SQL 構文と、実行されるデータ検証チェックに影響...
目次MySQLをインストールする環境変数の設定MySQLをインストールするmysqlをダウンロードし...
目次概要(ループモード - 共通)配列と非同期メソッドを宣言して反復するforループで使用するマップ...
目次簡単なコンポーネントの例より複雑な親子コンポーネントのケースオンセレクトの書き方反応する子供Re...
目次総合的な比較アクティブの観点から機能的な観点から詳細な比較1. エース2. コードミラー3. モ...
結果:実装コードhtml <nav class="dropdownmenu"...
目次1. はじめに2. バックアップとリカバリの簡単な定義3. 復旧計画で考慮すべきいくつかの要素4...
目次概要コンソールログコンソール.infoコンソール.警告コンソールエラーコンソールテーブルコンソー...
1. データベースを作成します。 データ data _name を作成します。 PHP でデータベー...
1.VirtualBoxソフトウェアをダウンロードしてインストールするまず、VirtualBox の...
ステップ1: MySQL YUMソースを取得するMySQLの公式サイトにアクセスして、RPMパッケー...
ユニアプリアプレットはWeChatでも同様のドロップダウン問題を抱えることになる解決策は、app.v...
目次1. 使いやすい2. 関数内でジェネリックを使用する3. クラス内でジェネリックを使用する4. ...
目次解決策1解決策2テーブルを作成するときに、興味深い問題に遭遇しました。「指定されたキーが長すぎま...