Tomcat で複数の war パッケージを展開する方法と手順

Tomcat で複数の war パッケージを展開する方法と手順

1 背景

JDK1.8-u181とTomcat8.5.53がインストールされました。

インストール後、環境変数に JAVA_HOME と Path が設定されます。 JDKではなくJREが搭載されています。

MES と ERP の 2 つの戦争パッケージをリリースする必要があります。

2 Tomcatをインストールする

.exe ファイルを使用してインストールしましたが、インストール後に tomvat_home を設定しませんでした (設定する必要があるかどうかわからないため)

3 フォルダをコピー

3.1 インストールディレクトリconfCatalina

Catalina はフォルダーです。Catalina を 2 つのフォルダーにコピーします。1 つは CatalinaMES というフォルダー、もう 1 つは CatalinaERP というフォルダーです。両方をインストール ディレクトリ\conf ディレクトリに配置します。

3.2 インストールディレクトリ webapps

webapps もフォルダーです。webappsMES と webappsERP という名前の 2 つのコピーを作成し、両方をインストール ディレクトリに配置します。

MESプロジェクトのwarパッケージはインストールディレクトリ\webappsMESに配置されます。

ERPプロジェクトのwarパッケージはインストールディレクトリ\webappsERPに配置されます。

4 設定ファイルを変更する

インストールディレクトリ\conf\server.xmlの内容を変更します。

<?xml バージョン="1.0" エンコーディング="UTF-8"?>

<サーバーポート="-1" シャットダウン="シャットダウン">
<リスナークラス名="org.apache.catalina.startup.VersionLoggerListener" />

<リスナークラス名="org.apache.catalina.core.AprLifecycleListener" SSLEngine="オン" />

<リスナークラス名="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<リスナークラス名="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<リスナークラス名="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

<グローバル命名リソース>

<リソース名="UserDatabase" auth="コンテナ"
タイプ="org.apache.catalina.UserDatabase"
description="更新および保存できるユーザーデータベース"
ファクトリー="org.apache.catalina.users.MemoryUserDatabaseFactory"
パス名="conf/tomcat-users.xml" />
</グローバル命名リソース>

<!-- mes をデプロイ -->
<サービス名="CatalinaMES">

<コネクタ ポート="8085" プロトコル="HTTP/1.1"
接続タイムアウト = "20000"
リダイレクトポート="8443" />

<エンジン名="CatalinaMES" defaultHost="localhost">

<レルムクラス名="org.apache.catalina.realm.LockOutRealm">

<レルムクラス名="org.apache.catalina.realm.UserDatabaseRealm"
リソース名="ユーザーデータベース"/>
</レルム>

<ホスト名="localhost" appBase="webappsMES"
unpackWARs="true" autoDeploy="true">

<コンテキスト パス="/mes-manager-web" docBase="C:\Program Files\Tomcat 8.5\webappsMES\mes-manager-web" デバッグ="0" 特権="true"></コンテキスト>

<Valve クラス名="org.apache.catalina.valves.AccessLogValve" ディレクトリ="logs"
プレフィックス="localhost_access_log" サフィックス=".txt"
パターン="%h %l %u %t &quot;%r&quot; %s %b" />

</ホスト>
</エンジン>
</サービス>

<!-- ERP をデプロイ -->
<サービス名="CatalinaERP">

<コネクタ ポート="8082" プロトコル="HTTP/1.1"
接続タイムアウト = "20000"
リダイレクトポート="8443" />

<エンジン名="CatalinaERP" defaultHost="localhost">


<レルムクラス名="org.apache.catalina.realm.LockOutRealm">

<レルムクラス名="org.apache.catalina.realm.UserDatabaseRealm"
リソース名="ユーザーデータベース"/>
</レルム>

<ホスト名="localhost" appBase="webappsERP"
unpackWARs="true" autoDeploy="true">

<コンテキスト パス="/erp-manager-web" docBase="C:\Program Files\Tomcat 8.5\webappsERP\erp-manager-web" デバッグ="0" 特権="true"></コンテキスト>


<Valve クラス名="org.apache.catalina.valves.AccessLogValve" ディレクトリ="logs"
プレフィックス="localhost_access_log" サフィックス=".txt"
パターン="%h %l %u %t &quot;%r&quot; %s %b" />

</ホスト>
</エンジン>
</サービス>
</サーバー>

このうち、<service> ノードはサービス、つまりデプロイされたプロジェクトを表します。

<service> ノードの name 属性は、対応する Catalina フォルダーの名前に変更されます。 <Engine> ノードの name 属性も、対応する Catalina フォルダーの名前に変更されます。

<Connector> ノードの port 属性はプロジェクトのポート番号です。競合しないように注意してください。

<Host> ノードの appBase プロパティが、対応する webapps フォルダーに変更されます。

<Context> ノードのパス属性はアクセスに使用されるアドレスです。つまり、プロジェクトのアクセス アドレスは服務器ip:項目端口號/path屬性的值。現在の構成によると、MES プロジェクトのローカル アクセス アドレスは127.0.0.1:8085/mes-manager-webです。 <Context> ノードの docBase 属性は、プロジェクトの war パッケージのローカル パスです。これをローカル マシン上の war パッケージの絶対パスに変更するだけです。

5 startup.batとshutdown.batを変更する

インストール ディレクトリ\bin\startup.bat を編集し、先頭に次のコードを追加します。

JAVA_HOME=C:\Program Files\Java\jre1.8.0_181 を設定します
TOMCAT_HOME=C:\Program Files\Tomcat 8.5 を設定します

1 つ目は JRE のインストール場所で、2 つ目は tomcat のインストール パスです。

同じ内容をshutdown.batの同じ場所に追加します。

6 startup.batをダブルクリックしてTomcatを実行します

このとき、DOS ウィンドウが開き、IDEA コンソールのようなプロジェクトの起動情報が出力されることに注意してください。プロジェクトが正常に起動したら、この DOS ウィンドウを閉じずに開いたままにしてください。Tomcat をオフにすると、実行が停止します。

7 注記

複数のプロジェクトで Spring フレームワークを使用する場合、複数のポートと複数のアプリケーションで Tomcat を構成するときにエラーが発生する可能性があります。

解決策: 各プロジェクトの web.xml に次のノードを追加します。

<コンテキストパラメータ>
<param-name>webAppRootKey</param-name>
<param-value>webapp.root</param-value>
</コンテキストパラメータ>

各プロジェクトの web.xml の <param-name> が、webAppRootKey に対応する <param-value> と異なることを確認します。たとえば、最初のものは webapp.root1 を使用し、2 番目のものは webapp.root2 を使用する、というようになります。

また、サーバーのファイアウォールが設定したいポートへの外部アクセスを許可しているかどうかにも注意してください。

Tomcat で複数の war パッケージをデプロイする手順に関するこの記事はこれで終わりです。Tomcat で複数の war パッケージをデプロイする方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • アイデアを war パッケージにパッケージ化し、tomcat にデプロイしてアクセス パスの問題 (図とテキスト)
  • Tomcat ルート ディレクトリに Web アプリケーションをデプロイする 3 つの方法
  • Tomcat にデプロイすると SpringBoot アプリケーションが起動できない問題の解決方法
  • Tomcat を使用して Web アプリケーションを展開する 4 つの方法の概要 (推奨)
  • Docker で Tomcat および Java アプリケーションをデプロイする詳細な手順
  • Tomcatにデプロイされたアプリケーションがフロントエンドページにアクセスできない問題について

<<:  vue3.0+vant3.0の迅速なプロジェクト構築の実装

>>:  MySQL における or、in、union、インデックス最適化の詳細な分析

推薦する

HTMLフォーム入力監視の詳細な理解

今日、入力イベントに関するブログ投稿を見て、気まぐれで関連情報を整理してみました。イベント:関数 c...

webpack と rollup を使用してコンポーネント ライブラリをパッケージ化する方法

序文以前、ローディングスタイルのコンポーネントを作成しました。コードの再利用性を実現するために、この...

MySQLの日付加算と減算関数の詳細な説明

1. 追加時間()指定した秒数を日付に追加する select addtime(now(),1); -...

HTMLテーブルではテーブルの外側の境界線のみが表示されます

質問があります。Dreamweaver で、3 行 1 列のログイン フォーム (ログイン、登録、パ...

MySQL プロジェクトでトランザクション分離レベルを選択する方法

導入コンテンツから始めましょう。誰もが次のような面接のシナリオに遭遇したことがあると思います。インタ...

nginxのリソースキャッシュ設定の詳細な説明

私はずっとキャッシュについて学びたいと思っていました。結局のところ、キャッシュはフロントエンドのパフ...

MySQLデータベース移行により、大量のデータを迅速にエクスポートおよびインポートできます

データベースの移行は、よく遭遇する問題です。データ量が少ない場合、移行は基本的に問題になりません。実...

Vueダイナミックフォームの詳細な応用

概要バックグラウンド管理システムには多くのフォーム要件があります。データをjson 形式で書き込み、...

Vue CLI のモードと環境変数の詳細な説明

序文実際のプロジェクトの開発では、通常、プロジェクト開発フェーズ、テストフェーズ、最終オンラインフェ...

純粋な CSS で DIV サスペンションを実装するサンプル コード (固定位置)

DIV フローティング効果 (固定位置) は CSS のみで実装されており、IE8、360、Fir...

泡の小さな鋭角効果を実現するCSS

効果画像(境界線の色が薄すぎるので、{} で囲みます): { }参考リンク Pure CSS バブル...

VMware vSAN 入門概要

1. 背景1. vSphere の共有ストレージの背景を簡単に紹介するvSphere の重要な機能は...

MySQL 5.7.23 のインストールと設定のグラフィックチュートリアル

この記事では、mysql5.7.23 の詳細なインストールプロセスを記録し、皆さんと共有します。 1...

Vueバインディングクラスとバインディングインラインスタイルの実装方法

目次バインディングクラスインラインスタイルのバインディングバインディングクラス方法1:オブジェクト構...

CSS でフロートとマージンを混合するサンプルコード

最近の勉強で、GitHub でレイアウトの練習をいくつか見つけたのですが、レイアウトにまったく慣れて...