Eclipse/Tomcat でホットデプロイメントとホットスタートを実装する方法

Eclipse/Tomcat でホットデプロイメントとホットスタートを実装する方法

1. ホット デプロイメント: コンテナの実行中にプロジェクト全体を再デプロイすることを意味します。この場合、通常、メモリ全体がクリアされ、再ロードされます。簡単に言えば、Tomcat または他の Web サーバーがプロジェクトの再ロードに役立ちます。この方法では、セッションが失われるなどの状況が発生する可能性があります。

2. ホットローディング: コンテナの実行中にコンパイルされたクラスを再ロードして変更することを意味します。この場合、メモリはクリアされず、セッションは失われませんが、メモリオーバーフローが発生したり、メソッドが見つからないという問題が起こりやすくなります。メモリはオブジェクトに変換できないためです。一般的に、クラスの構造やモデルを変更すると例外が発生しますが、既存の変数やメソッドを変更しても問題は発生しません。

Eclipse 構成ホット スタート:

Java ベースのホットデプロイメントとホットロードのプロセスでは、クラスローダーが重要な役割を果たします。クラス ローダーは、すでにロードされているクラスを再ロードすることはできません。そうしないと、java.lang.LinkageError が報告されますが、新しいクラス ローダー インスタンスが使用されている限り、実行中のアプリケーションにクラスを再度ロードできます。通常、デバッグ モードはホット ローディングをサポートします。

しかし、ここで、Eclipse がデバッグで起動されたがホット ローディングが行われず、クラス ファイルへの変更ごとに再コンパイルが必要になったため、開発に非常に時間がかかるという状況に遭遇しました。ここでは、ホット ローディングに Eclipse を使用する方法について簡単に紹介します。

Eclipseを起動し、次のディレクトリを見つけます。

server.xmlを開いて

次のようにコードをコピーします
<コンテキスト docBase="dreamlive" パス="/ROOT" リロード可能="true" クロスコンテキスト="true" ソース="org.eclipse.jst.jee.server:dreamlive"/>

このコード行では、新しいプロジェクトをデプロイすると、docBase とソースがそれに応じて変更されます。現在はまだホット デプロイ状態であるため、クラス ファイルが変更されるたびに自動的にコンパイルされますが、これには時間がかかります。次に、構成を変更してみましょう。

次のようにコードをコピーします
<コンテキスト docBase="dreamlive" path="/ROOT" reloadable="false" crossContext="true" source="org.eclipse.jst.jee.server:dreamlive"/></ホスト>

ホット スタートを有効にするには、reloadable を false に変更し、crossContext="true" を追加します。注: デバッグから開始する必要があります。

ただし、新しいプロジェクトをデプロイするたびにこの設定を変更する必要があります。新しいプロジェクトがデプロイされるたびに、server.xml ファイルの動的な変更を観察できます。設定が完了した後、プロジェクトのホットロードが有効にならない場合は、eclipse --> プロジェクト --> 自動的にビルドをチェックして、自動コンパイルを追加します。

各属性の意味は下記に添付されています

  • パスはアクセスパスを示します
  • docBaseはストレージパスを示します
  • debug はデバッグ レベルを、最も少ない情報を提供する 0 と、最も多くの情報を提供する 9 に設定します。
  • reloadable=true の場合、web.xml またはクラスが変更されると、サービスを再起動せずに自動的に再ロードされます。
  • crosscontext="true" は、異なる設定されたコンテキストがセッションを共有することを意味します (オプション)

Tomcat 構成ホットスタート

具体的な方法は以下の通りです。

手順 1: Tomcat インストール ディレクトリで、conf/server.xml のホスト構成を変更し、その reloadable 属性を true に設定します。つまり、Host タグに reloadable="true" を追加し、Tomcat を再起動して構成ファイルを有効にします。

ステップ2: confフォルダのweb.xmlファイルに追加する

<初期化パラメータ>
 <param-name>開発</param-name>
 <param-value>true</param-value>
</init-param>

ステップ 3: 変更を有効にするには、Tomcat サーバーを再起動します。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • EclipseがTomcatサーバーをデプロイして起動できない問題の解決策
  • Tomcat にデプロイすると SpringBoot アプリケーションが起動できない問題の解決方法
  • 複数の Tomcat を展開して起動し、プロジェクトを移行する方法を 1 つの記事で学習します。

<<:  MySQLのネストされたトランザクションで発生する問題

>>:  MySQL 5.7 以降のバージョンのダウンロードとインストールのグラフィック チュートリアル

推薦する

MySQLデータベースのnullに関する知識ポイントのまとめ

MySQL データベースでは、null は一般的な状況です。MySQL での null に関する注意...

PHP 開発環境の構築に関する win10 docker-toolsbox チュートリアル

画像をダウンロード docker プル mysql:5.7 docker pull php:7.2-...

MySQLインデックスの作成について知っておくべきこと

目次序文: 1. インデックスメソッドを作成する2. インデックスを作成するために必要な権限序文: ...

Webデザインの経験: Webコードを効率的に書く

本来、この第 7 章では、デザインにおけるレイヤーと空間テクニックについて深く議論するはずです。しか...

VMware15 仮想マシン ブリッジ モードでインターネットにアクセスできない問題の解決方法

説明 ソリューションVMware 15 仮想マシン ブリッジ モードではインターネットにアクセスでき...

webpack-dev-server のコア概念とケースの詳細な説明

webpack-dev-server コアコンセプトWebpack の ContentBase と ...

JavaScript で Baidu Maps API にアクセスする方法と手順

目次1. Baidu Map API アクセス2. HTML で Baidu Map API を使用...

Vue 手書き読み込みアニメーション プロジェクト

ページが応答しない場合、白い画面が表示されないように、読み込みアニメーションを表示するのがユーザーフ...

MySQL 2級コンピュータ試験共通テストポイント 8つのMySQLデータベース設計最適化方法

MySQLデータベース設計の8つの最適化方法の詳細は次のとおりです。 1. 最も適切なフィールド属性...

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

Mysql は人気があり、使いやすいデータベース ソフトウェアです。以下は、mysql の無料インス...

強くお勧めします! Vue 3.2 でシンタックスシュガーを設定する

目次前の1. セットアップ構文シュガーとは何か2. セットアップコンポーネントを使用して自動的に登録...

HTML のメタタグの簡単な比較

メタ タグは、ファイル情報を定義し、検索エンジンによる検索を容易にするために Web ページ ファイ...

フロントエンド開発者のための HTML 入門

1 HTML入門1.1 初めてのコード体験、最初のウェブページの作成XML/HTML コードコンテン...

js を使用してネットワークカメラを呼び出し、一般的なエラーを処理します

最近、業務上の理由により、Web ページ上のさまざまなネットワーク カメラにアクセスしてデバッグする...

SSHパスワードフリーログイン設定方法の詳しい説明(画像とコマンド)

まず、私たちがやりたいことは、serverA の usera を使用して、パスワードなしで serv...