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、インデックス最適化の詳細な分析

推薦する

uniapp パッケージ化されたアプレット レーダー チャート コンポーネントの完全なコード

効果画像:実装コードは以下のとおりですビュー <canvas id="radar-c...

MySQL カーソルの概念と使用法の詳細な説明

この記事では、例を使用して MySQL カーソルの概念と使用方法を説明します。ご参考までに、詳細は以...

ソースコード分析からTomcatがサーブレットの初期化を呼び出す方法の詳細な説明

目次導入1. Tomcatを起動するコード2. Tomcatフレームワーク3. コンテナを作成する ...

HTML 要素 (タグ) とその使用法

a : ハイパーリンクの開始位置または宛先位置を示します。頭字語: 単語の最初の文字からなる略語を示...

Linux サービス管理の 2 つの方法、service と systemctl の詳細な説明

1.サービスコマンドサービスコマンドは実際には/etc/init.dディレクトリに移動し、関連プログ...

MySQLクエリが遅い場合の理由と解決策

Python プログラムを書き、Mysql ライブラリを集中的に操作したためです。データ量が多くない...

Vue ローカルコンポーネントデータ共有 Vue.observable() の使用

コンポーネントが詳細になるにつれて、複数のコンポーネントが状態を共有する状況に遭遇するでしょう。Vu...

Elasticsearch を使用する際の一般的な問題の解決策

1. redis で使用すると Netty の起動競合が発生するため、***Application ...

テキストまたはJSONを返すようにnginxを設定する方法

特定のインターフェースをリクエストするときに、指定されたテキスト文字列または JSON 文字列を返す...

Hadoop 2.x と 3.x の 22 ポイントの比較、Hadoop 3.x の 2.x に対する改善点

質問ガイド1. Hadoop 3.x はどのようにして障害を許容するのでしょうか? 2. Hadoo...

Linux 環境の Apache サーバーでセカンダリドメイン名を設定する方法の詳細な説明

この記事では、Linux 環境の Apache サーバーでセカンダリ ドメイン名を構成する方法につい...

画像にマウスを置いたときにズームイン/ズームアウトするには JS を使用します

マウスが画像上にあるときにズームインおよびズームアウトするには、JS を使用します。具体的なコードは...

Ubuntu 12.04 でカーネルツリーを構築する実装プロセスの詳細な説明

まず使用しているカーネルのバージョンを確認してくださいlin@lin-仮想マシン:~$ uname ...

MySQL データベース インデックスが B+ ツリーの使用を選択するのはなぜですか?

MySQL データベース インデックスが B+ ツリーを使用する理由をさらに分析する前に、データ構...

mysql データはどこに保存されますか?

MySQLデータベースの保存場所: 1. MySQLがMyISAMストレージエンジンを使用する場合...