背景 ご存知のとおり、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 ステートメントを使用した簡単な追加、削除、変更、クエリ操作の例
1. ボックスを中央に配置するいくつかの方法を記録します。 1.0、マージン幅固定、高さ中央配置。 ...
コードが失われ、コンテナ内で実行されているイメージから必要なコードを回復する必要がある場合があります...
nginx でファイルサーバーを構築することもありますが、これは一般に公開されていますが、サーバーが...
1. 機能: xargs は、stdin 内のスペースまたは改行で区切られたデータをスペースで区切ら...
以前、「MySQL でコミットされていないトランザクション情報を検索する方法」というタイトルのブログ...
Nginx は、マスター プロセス (MasterProcess) と、同じ数のホスト CPU コア...
目次チュートリアルシリーズ1. SQL言語の紹介と仕様2. データベース操作1. ライブラリを作成す...
私はしばらくの間チャートをいじっていましたが、好奇心から、CSS を使用してチャートを作成するより良...
前回の CSS 回転灯と同じ内容の CSS アニメーションの応用です。これは単なる別のアプリケーショ...
SVG (Scalable Vector Graphics)は、XML 構文に基づいた画像形式です。...
従来、開発者はインスタンスで必要になる可能性のあるデータに対して JavaScript クラス内にプ...
1. ファイルサーバーについてプロジェクトでは、公開ソフトウェアやデータをプロジェクト チーム メン...
重複したフォーム送信は、マルチユーザー Web アプリケーションで最も一般的で厄介な問題です。重複送...
序文MySQL スロー クエリ ログは、MySQL が提供するログ レコードの一種です。これは、応答...
この読書ノートでは、主にファイルシステムに関連する操作を記録します。ディスクとディレクトリの容量ディ...