背景 ご存知のとおり、JavaEE プロジェクトを開発した後は、そのプロジェクトをサーバーの Tomcat にデプロイする必要があります。一般的なデプロイメント方法は、プロジェクトを war パッケージにパッケージ化して Tomcat の webapps の下に置き、Tomcat を再起動して、IP アドレス + ポート番号を介してアクセスすることです。このデプロイメント自体には問題はありませんが、まだ本番環境にあり、プロジェクトを頻繁に変更して最適化する必要がある場合、プロジェクトを頻繁に war パッケージにパッケージ化し、webapps の下の war パッケージを置き換える必要があるため、面倒です。 次に、ローカル プログラミングを実装し、プロジェクトをリモート サーバーの Tomcat にデプロイしてホット デプロイメントを実現する方法について説明します。 使用されるテクノロジーとツール
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を構成する リモート サーバーの <?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</パスワード> </構成> </プラグイン>
7. プロジェクトでMavenのTomcatデプロイメントコマンドを起動する 初期展開では、 「tomcat7:deploy」コマンドを使用できます(TomcatのWebアプリケーションの下にルートフォルダがない場合に使用されます)。 すでにデプロイしている場合は、「tomcat7:redeploy」コマンドを使用します。 tomcat7をクリーンアップ:再デプロイ -DskipTests 使用時にファイルが見つからないというエラーが発生します。再コンパイルまたはパッケージ化してください。 以下のようにIDEAを使用します もちろん、クイックスタートを設定することもできます IDE->ターミナルまたはプロジェクトルートディレクトリを使用してDOSウィンドウを開き、Mavenコマンドを入力することもできます。 この時点で、tomcat + maven のホット デプロイメントが構成されているため、面倒なパッケージ化とデプロイメントについて心配する必要がなくなりました。 要約する 上記は私が紹介した SSM プロジェクトです。これは頻繁に war パッケージでデプロイされ、ホット デプロイメント構成は tomcat と maven を使用して実現されます。お役に立てば幸いです。ご質問がある場合は、メッセージを残してください。すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。 以下もご興味があるかもしれません:
|
<<: WeChatアプレットは固定ヘッダーとリストテーブルコンポーネントを実装します
>>: MySQL ステートメントを使用した簡単な追加、削除、変更、クエリ操作の例
非同期レプリケーションMySQL レプリケーションは、デフォルトでは非同期です。マスター スレーブ ...
Flashにより、デザイナーや開発者はブラウザ上でリッチなコンテンツを提供し、動き、インタラクティブ...
最近の問題としては、次のような現象があります。システムには、docker run コマンドを継続的に...
以下の分析は製品設計原則に関するものですが、そのほとんどはウェブサイト製品に基づいているため、ユーザ...
Linux でダイナミック ライブラリをロードできません次のような異常事態が発生した場合./test...
コードをコピーコードは次のとおりです。 <div class="content&qu...
1. forEach() は map() に似ています。これも渡された関数に各要素を順番に適用します...
ソフトウェアのグリーンバージョンとインストールバージョンの違いは何ですか?通常、ファイルのインストー...
目次ファーストルックインデックスインデックスの概念インデックスファイルの構成インデックスの役割SQL...
以下は私がまとめた基本的なSQL知識です。主に参考資料として、また将来の他の初心者の助けとして、私自...
デフォルトでは、 /etc/default/docker 設定は有効になりません。docker 環境...
Docker を実行するには root 権限が必要です。非 root ユーザーに docker コマ...
よく使われる4つのMySQLエンジンの紹介(1):MyISAMストレージエンジン:トランザクションや...
1. 基礎知識(日付オブジェクトのメソッド) 😜 getFullYear() は年を表す4桁の数字を...
実稼働環境で起こる最も嬉しいことは、シナリオによっては、更新または削除時にパラメータを無視せざるを得...