SSMプロジェクトは、ホットデプロイメント構成を実装するためにTomcatとMavenを使用してWARパッケージとしてデプロイされることが多い。

SSMプロジェクトは、ホットデプロイメント構成を実装するためにTomcatとMavenを使用してWARパッケージとしてデプロイされることが多い。

背景

ご存知のとおり、JavaEE プロジェクトを開発した後は、そのプロジェクトをサーバーの Tomcat にデプロイする必要があります。一般的なデプロイメント方法は、プロジェクトを war パッケージにパッケージ化して Tomcat の webapps の下に置き、Tomcat を再起動して、IP アドレス + ポート番号を介してアクセスすることです。このデプロイメント自体には問題はありませんが、まだ本番環境にあり、プロジェクトを頻繁に変更して最適化する必要がある場合、プロジェクトを頻繁に war パッケージにパッケージ化し、webapps の下の war パッケージを置き換える必要があるため、面倒です。

次に、ローカル プログラミングを実装し、プロジェクトをリモート サーバーの Tomcat にデプロイしてホット デプロイメントを実現する方法について説明します。

使用されるテクノロジーとツール

  • Maven (プロジェクトの構築と依存関係の管理)
  • tomcat7 プラグイン (tomcat にデプロイされたプラグイン)
  • tomcat サーバー (Web サーバー)
  • 推奨されるコンパイラはIDEAです

1. ローカルコンピュータにリモートTomcatを使用する権限があることを確認する

Tomcat の {TOMCAT_HOME}conf/tomcat-users.xml 構成ファイルを変更し、ユーザー名、パスワード、および権限を追加します。

<role rolename="マネージャー GUI" />
<role rolename="マネージャースクリプト" />
<ロール ロール名="admin-gui" />
<role rolename="管理者スクリプト" />
<user ユーザー名="tomcat" パスワード="tomcat" 役割="manager-gui、manager-script、admin-gui、admin-script"/>

2. リモートアクセスを許可するようにTomcatを構成する

リモート サーバーの{TOMCAT_HOME}conf/Catalina/localhost/ディレクトリに manager.xml ファイルを作成し、次のように構成します。

<?xml バージョン="1.0" エンコーディング="UTF-8"?>
<コンテキスト特権="true" antiResourceLocking="false" docBase="${catalina.home}/webapps/manager">
     <Valve クラス名="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</コンテキスト>

注: 一部のユーザーのみに使用を許可する場合は、allowでIPを設定できます。例:

許可 = "192.168.0.102"

3. リモートTomcatを再起動する

tomcatのbinディレクトリで実行

//Tomcatをシャットダウンする
./シャットダウン.sh
//Tomcatを起動する
./スタートアップ.sh

4. 使用権限があるかどうかをテストする

Tomcat にアクセスします (例: http://192.168.0.102:8080) (独自のサーバーまたは仮想マシンの IP アドレスを使用します)
クリックマネージャーアプリ


ここに画像の説明を挿入

先ほど設定したTomcatアカウントとパスワードを入力します。

ここに画像の説明を挿入

このページにジャンプすれば設定は完了です。

ここに画像の説明を挿入

もちろん、現在のページで war をデプロイして置き換えることもできます。これは別のデプロイメント方法ですが、それでもホット デプロイメントほど便利ではありません。

質問: 403エラーが発生した場合、次の

403 アクセス拒否

このページを閲覧する権限がありません。
 
デフォルトでは、Manager は Tomcat と同じマシン上で実行されているブラウザからのみアクセスできます。この制限を変更する場合は、Manager の context.xml ファイルを編集する必要があります。
 
マネージャー アプリケーションがアクセスを許可するように既に構成されていて、ブラウザーの戻るボタンを使用したり、保存したブックマークなどを使用したりした場合は、マネージャー アプリケーションの HTML インターフェイスに対して有効になっているクロスサイト リクエスト フォージェリ (CSRF) 保護がトリガーされている可能性があります。メインのマネージャー ページに戻って、この保護をリセットする必要があります。このページに戻ると、マネージャー アプリケーションの HTML インターフェイスを通常どおり引き続き使用できます。このアクセス拒否メッセージが引き続き表示される場合は、このアプリケーションにアクセスするために必要な権限があるかどうかを確認してください。
 
設定ファイルを変更していない場合は、インストール内の conf/tomcat-users.xml ファイルを確認してください。このファイルには、この Web アプリケーションを使用するための資格情報が含まれている必要があります。

解決する

/webapps/manager/META_INF/context.xml ファイルを変更し、ファイル内の制限されたソース設定をコメント アウトします。

<コンテキスト antiResourceLocking="false" privileged="true" >
 <!-- アクセス権の設定を削除するには、ここにコメントしてください <Valve className="org.apache.catalina.valves.RemoteAddrValve"
     許可="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
     -->
</コンテキスト>

その後、Tomcatを再起動せずにページを更新します。

5. MavenでリモートTomcat管理者アカウントを構成する

ローカル Maven {MAVEN_HOME}/conf/settings.xml ファイルのノードに次のコンテンツを追加します。

<!-- tomcat を操作できるユーザー名とパスワードを設定します-->
<サーバー>
  <id>クロクタックス</id>
  <!-- サーバーのログイン名 -->
  <ユーザー名>tomcat</ユーザー名>
  <!-- サーバーログインパスワード -->
  <パスワード>tomcat</パスワード>
</サーバー>

6. プロジェクトでMavenのtomcat7プラグインを設定する

<!-- Tomcat プラグインを設定する-->
<プラグイン>
	<グループ ID>org.apache.tomcat.maven</グループ ID>
	<artifactId>tomcat7-maven-プラグイン</artifactId>
	<バージョン>2.2</バージョン>

	<構成>
		<!-- ここでの名前は、{MAVEN_HOME}/conf/settings.xml で設定されたサーバー ノードの ID と一致している必要があります-->
		<server>クロカットックス</server>
		<!--サーバーポート番号-->
		<ポート>8080</ポート>
		<!-- プロジェクトの公開パスはデフォルトでは tomcat/webapps ディレクトリですが、より深いディレクトリを指定することもできます。
		「/」を残した場合、ROOT.war パッケージはデフォルトで webapps ディレクトリにデプロイされます。
		<パス></パス>
		<!-- tomcat7 の URL は自由に変更できないことに注意してください。また、サフィックスは html ではなく text である必要があります。
		 ローカル Tomcat デプロイメントの場合は、localhost または ip を使用できます。
		<url>http://localhost:8080/manager/text</url>
		<!--<url>http://117.62.110.110:8080/manager/text</url>-->
		<!--中国語パラメータの文字化けの問題を解決する-->
		<uriEncoding>UTF-8</uriEncoding>
		<update> 真</update>
		<!-- tomcat\conf\tomcat-users.xml で定義されたユーザー名を設定します -->
		<ユーザー名>tomcat</ユーザー名>
		<パスワード>tomcat</パスワード>
	</構成>
</プラグイン>
  • server : 名前は、{MAVEN_HOME}/conf/settings.xml で設定されたサーバーノードの ID と一致している必要があります。
  • port : サーバーのポート番号
  • path : プロジェクトが公開されるパス。デフォルトのディレクトリは tomcat/webapps です。より深いディレクトリを指定することもできます。"/" のままにしておくと、ROOT.war パッケージはデフォルトで webapps ディレクトリにデプロイされます。
  • url : Tomcat7 の URL は自由に変更できないことに注意してください。また、サフィックスは html ではなくテキストである必要があります。ローカルの Tomcat 展開の場合は、localhost と ip を使用できます。uriEncoding: 中国語のパラメータが文字化けする問題を解決します。
  • 更新: ホットデプロイメント。そうでない場合は後でエラーが報告されます。
  • ユーザー名: {TOMCAT_HOME}\conf\tomcat-users.xmlで定義されたユーザー名を設定します。
  • パスワード: {TOMCAT_HOME}\conf\tomcat-users.xmlで定義されたパスワード

7. プロジェクトでMavenのTomcatデプロイメントコマンドを起動する

初期展開では、 「tomcat7:deploy」コマンドを使用できます(TomcatのWebアプリケーションの下にルートフォルダがない場合に使用されます)。

すでにデプロイしている場合は、「tomcat7:redeploy」コマンドを使用します。
プロジェクトの競合が発生した場合は、次のコマンドを使用できます。
-DskipTestsはテストをスキップすることを意味します

tomcat7をクリーンアップ:再デプロイ -DskipTests

使用時にファイルが見つからないというエラーが発生します。再コンパイルまたはパッケージ化してください。

以下のようにIDEAを使用します


ここに画像の説明を挿入

もちろん、クイックスタートを設定することもできます


ここに画像の説明を挿入

IDE->ターミナルまたはプロジェクトルートディレクトリを使用してDOSウィンドウを開き、Mavenコマンドを入力することもできます。

この時点で、tomcat + maven のホット デプロイメントが構成されているため、面倒なパッケージ化とデプロイメントについて心配する必要がなくなりました。

要約する

上記は私が紹介した SSM プロジェクトです。これは頻繁に war パッケージでデプロイされ、ホット デプロイメント構成は tomcat と maven を使用して実現されます。お役に立てば幸いです。ご質問がある場合は、メッセージを残してください。すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • idea2020.3 Maven環境の設定とTomcatの設定に関する詳細なチュートリアル
  • Java (JDK/Tomcat/Maven) ランタイム環境の設定とツール (idea/eclipse) のインストールに関する詳細なチュートリアル
  • IDEA は Java 開発環境 (maven、gradle、tomcat) を構成します。
  • Maven プロジェクトのリモート デプロイメント && Tomcat を使用してデータベース接続を構成する方法
  • Ideaはプロジェクトのデプロイメントを実装するためにmaven-tomcat-pluginを設定します
  • Maven Web プロジェクトを Eclipse にインポートし、Tomcat で実行するように設定します。
  • Maven プロジェクトで Tomcat を設定する 2 つの方法

<<:  WeChatアプレットは固定ヘッダーとリストテーブルコンポーネントを実装します

>>:  MySQL ステートメントを使用した簡単な追加、削除、変更、クエリ操作の例

推薦する

HTML Web ページにおける URL の表現

HTML では、一般的な URL はさまざまな方法で表現されます。相対 URL:コードをコピーコード...

Webデザインの経験:ナビゲーションシステムをシンプルにする

<br />友人と話し合っていたとき、フレームワークのレイヤー設計の中で最も核となるのは...

Linux リモート コントロール Windows システム プログラム (3 つの方法)

場合によっては、Windows システム上のプログラムを Linux 上でリモートで実行する必要があ...

MySQL の一般的な SQL ステートメントの概要

1. mysqlエクスポートファイル: SELECT `pe2e_user_to_company`....

mysql のインデックスと FROM_UNIXTIME に関する問題

ゼロ、背景今週の木曜日にたくさんのアラートを受け取りました。DBA に確認を依頼したところ、遅いクエ...

カルーセル効果を実現するjQueryプラグイン

毎日jQueryプラグイン - カルーセルチャートを実装するためのjQueryプラグイン。参考までに...

MySQL インデックス失敗の原理

目次1. インデックス失敗の理由2. インデックスの秩序が崩れる状況を見てみましょう。 - インデッ...

マークアップ言語 - Web アプリケーション CSS スタイル

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...

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

この記事は、参考のためにMySQL 8.0.18のインストールと設定のグラフィックチュートリアルを記...

VUEをベースにしたシンプルな学生情報管理システムの実装

目次1. 主な機能2. 実装のアイデア3. コードの実装4. エフェクト表示V. 結論1. 主な機能...

ネイティブ JavaScript でショッピングカートを実装する

この記事では、ショッピングカートを実装するためのJavaScriptの具体的なコードを参考までに紹介...

MySQLクエリの冗長インデックスと未使用のインデックス操作

MySQL 5.7 以降のバージョンでは、冗長インデックス、重複インデックス、およびインデックスを使...

Vueデータ監視の原理の詳細な説明

<本文> <div id="ルート"> <h1&...

Linux ssh サービス情報と実行ステータスを表示する方法

Linux での ssh サービス構成など、ssh サーバー構成に関する記事は多数あります。ここでは...

FileZilla Server の FTP サーバー構成と 425 エラーおよび TLS 警告の解決策の詳細な説明

123WORDPRESS.COM では、FileZilla のダウンロード リンクを提供しています:...