Linux 上でプロジェクトをリリースするために Tomcat を展開するプロセスにおけるさまざまな問題と解決策

Linux 上でプロジェクトをリリースするために Tomcat を展開するプロセスにおけるさまざまな問題と解決策

プロジェクトをプロジェクトサイトのテスト環境にデプロイする

JDK1.8
トムキャット8.5
Maven パッケージ化された戦争
Linux-----Centos
誰がその場で Tomcat を渡してきて、Linux プラットフォームの ****** ディレクトリにアップロードして解凍したのかはわかりません。ダイレクトスタート

図1:

Tomcat ディレクトリ構造

質問1

Tocmat は初めて起動されるため、ログ ファイルはありません。したがって、./startup.sh を直接起動します。次のコマンドを使用して、ログ情報を動的に表示できます。実行後のヒント実行権限がありません

./startup.sh & tailf ../logs/catalina.out

問題分析:現在のユーザーには .sh 実行ファイルを実行する権限がありません

問題解決:コマンド chmod u+x *.sh を使用します。 tomcat/binディレクトリで実行

コマンド分析:現在のディレクトリ内のすべての .sh ファイルの所有者に実行権限を追加することを意味します。

  • chmodは、ファイルの権限モードを変更する権限管理コマンドの略語です。
  • u は所有者を表します。
  • x は実行権限を表します。
  • 「+」は権限の追加を示します。
  • 次のようにファイルを個別に指定することもできます: chmod u+x abc.sh
  • 次に、./startup.sh で起動します。

図2:

権限が不十分であると表示されました。

質問2

起動後、***** ディレクトリ内のファイルが見つからないというエラー メッセージが表示されます。

問題分析:この問題は、Tomcat の server.xml ファイルに複数のコンテキスト環境が設定されているために発生します。ただし、指定されたディレクトリにはプロジェクトがデプロイされていません。

問題の解決方法: server.xml ファイル内のすべてのコンテキストを削除します。 tomcat ディレクトリの webapps および wtpwebapps の下にデプロイされたすべてのプロジェクトを削除します。現時点では、別のebankを開始するだけです。起動に成功しました。8080 へのアクセスも成功しました。

図3:

コンテキストを含む server.xml ディレクトリ。

質問3

Maven によってパッケージ化された war を Tomcat サーバーの Web アプリケーションに追加します。それでは始めましょう。しかし、エラーポートは使用されています。

問題分析:この操作は、前のステップを一時停止せずに実行されます。これにより、ポートが占有されます。しかし、Tomcatを直接停止した後でも、ポートが占有されていると報告されます。

問題解決:より暴力的なアプローチを使用する:
ebank プロセス ID を照会します: ps aux|grep tomcat
プロセスを直接終了します: kill-9 PID tomcat プロセスを終了し、その後正常に起動できるようになります 図 4:

ポート占有エラーメッセージ

質問4

この時点では正常に起動できますが、エラーが報告されます: java.lang.OutOfMemoryError: PermGen space (永続領域のメモリ オーバーフローに属するメモリ オーバーフローを促します)。

問題分析: Tomcat のメモリ パラメータが以前に設定されていません。現在デプロイされているプロジェクトは大量のメモリを占有し、多くのクラスを読み込みます。その結果、永続領域のメモリが不足することになります。

解決策: tomcat の bin ディレクトリにある catalina.sh ファイルをコピーして変更し、元のファイルをバックアップします。 catalina.sh ファイルで cygwin=false の位置を見つけて、その前にパラメータを追加します。引用符を含める必要があることに注意してください。
JAVA_OPTS="-Xms256m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m"
tomcat/bin 内の変更されたファイルを置き換えます。

図5:

ヒープメモリオーバーフローエラーメッセージ

図6:

catalina.sh ファイルの変更された内容

質問5

このとき、再起動はされますが、catalina.sh ファイルが見つからないというメッセージが表示されます。

問題分析: catalina.sh 実行ファイルが startup.sh 実行ファイル内で呼び出されるため。これにより、Tomcat サービスが開始されます。次に、ll コマンドを使用して bin ディレクトリを表示します。 catalina.sh ファイルが実行可能ファイルではなくなったという問題が見つかりました。 (緑色ではない)問題の解決方法: chmod u+x catalina.sh を再度使用して、実行権限を付与します。

図7:

startup.shファイルでcatalina.sh実行ファイルを呼び出します

図 8: この図では hello.sh を例に挙げています。 (catalina.shとは異なり黒で表示されます)

実行可能ファイルかどうかを判別する

質問6

起動は成功しましたが、ブラウザでプロジェクトにアクセスできませんでしたが、8080へのアクセスは成功しました。

問題分析: Tomcat の webapps ディレクトリで、Tocmat によって解凍された後、各 War パッケージにバージョン番号があることがわかります (war パッケージは Maven パッケージ化によって生成され、バージョン番号があります)。ブラウザがアクセスする正しいアドレスにバージョン番号がない問題の解決策:プロジェクトを削除し、War パッケージの名前を変更します。もう一度やり直してください。これまでのところすべて成功しています 図8:

webapps ディレクトリ内のバージョン番号付きの war プロジェクト

追加コマンド

ログをクリアします:

エコー -n "" > ../logs/catalina.out
	固定構文: echo -n "" >

ログサイズを確認します:

du -h ../logs/catalina.out
	固定構文: du -h >

Linux に Tomcat をデプロイしてプロジェクトをリリースする過程でのさまざまな問題の解決に関するこの記事はこれで終わりです。Linux に Tomcat をデプロイすることに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Linux(中心OS7)は、Java Webプロジェクトの実行環境を構築するためにJDK、Tomcat、MySQLをインストールします。
  • Linux での Tomcat8 のインストールとアンインストールに関する詳細なグラフィック チュートリアル
  • Linux でシェル スクリプトを使用して Tomcat の状態を監視し、自動的に起動する手順
  • tomcat をインストールし、Linux で Web サイトを展開します (推奨)
  • Linux (CentOS7) に Tomcat をインストールし、Tomcat をスタートアップ項目として設定します (tomcat8 を例に挙げます)
  • Linux システムに 3 つ以上の Tomcat をインストールする (詳細な手順)
  • Linux環境でシェルスクリプトを書いてTomcatサービスを開始および停止する方法
  • LinuxでTomcatのポート番号を変更する方法

<<:  MySql Installer 8.0.18 画像とテキストによるビジュアル インストール チュートリアル

>>:  jsはフォーム検証機能を実装します

推薦する

MySQL シリーズ データベース設計 3 つのパラダイム チュートリアルの例

目次1. データベース設計の3つのパラダイムに関する知識の説明1. デザインパラダイムとは何ですか?...

2 つの MySQL ユーザー削除ステートメント (delete user と drop user) の違い

ヒント: MySQL では、ユーザーの作成と削除が頻繁に必要になります。ユーザーを作成するときは、通...

Docker-compose を使用して ELK クラスターを構築する方法

すべてのオーケストレーション ファイルと構成ファイルは、私の Github からアクセスできます。構...

JVM 上の高性能データ形式ライブラリ パッケージである Apache Arrow の紹介とアーキテクチャ (Gkatziouras)

Apache Arrow は、BigQuery を含むさまざまなビッグデータ ツールで使用される一...

DIVのぼかし機能を実装する方法

マウスを動かしたときにDIVが消えるように手ぶれ補正を使用するdiv タグ自体は onblur イベ...

Ubuntu システムにおける Mysql ERROR 1045 (28000): ユーザー root@localhost へのアクセスが拒否される問題の解決方法

最初の方法: skip-grant-tables: 非常に便利なmysql起動パラメータ非常に便利な...

HTML ドラッグ アンド ドロップ機能の実装コード

Vueベースこの機能の核となるアイデアは、JavaScript コードを通じてページ上のノードの左余...

MYSQL SERVER のログファイルを縮小する方法

トランザクション ログには、関連するデータベースに対する操作が記録され、データベースの回復に関連する...

JavaScript の知識: コンストラクタも関数である

目次1. コンストラクタの定義と呼び出し2. 新しいキーワードの目的3. コンストラクタの問題: メ...

手書きの Vue2.0 データハイジャックの例

目次1: webpackをビルドする2. データハイジャック3: まとめ1: webpackをビルド...

Vue+ElementUI Treeの使い方

Vue+ElementUI Treeの使い方は参考までに。具体的な内容は以下のとおりです。 フロント...

MySQL で SQL 文の実行時間を表示する方法

目次1. 初期SQLの準備2.MysqlはSQL文の実行時間をチェックします3. さまざまなクエリの...

Linux システムでの gcc コマンドの使用法の詳細な説明

目次1. 前処理2. コンパイル3. コンパイル4. リンク1. gccのインストール(Ubuntu...

MySQL 8で追加された3つの新しいインデックスは、非表示、降順、関数です。

目次MySQL 8 の隠しインデックス、降順インデックス、関数インデックス1. 隠しインデックス1....

Windows 8 での MySQL Community Server 5.6 のインストールと設定のチュートリアル

この記事では、Windows 8 での MySQL5.6 のインストールと設定のチュートリアルを記録...