Tomcat サービスに Java 起動コマンドを追加する方法

Tomcat サービスに Java 起動コマンドを追加する方法

私の最初のサーバープログラム

現在、オンラインゲームの書き方を学んでいるので、サーバーサイドのプログラムを書く必要があります。PHP、JAVA、C などを調べました。最終的に、Alibaba Cloud や Tencent Cloud との互換性、低コスト、学習難易度の低さから Java を選択しました。

次に、Java クラスの記述方法を学び始めます。また、データベースに接続する方法と、数秒ごとにコードを実行する方法についても説明します。結局のところ、これら 2 つを組み合わせると、最もシンプルなサーバーになります。

私の最初のプログラムは非常にシンプルです。Tomcat が起動すると、6 秒ごとに実行され、一連の乱数を生成して MySQL データベースに送信します。
重要なポイント: データベースへの書き込みのための自動開始タイマー

データベースへの書き込みとタイミング操作については、以前の記事で紹介しました。

そこで、この記事では主に自動起動する方法を紹介します。

既存のコード:

1. メイン関数: mainGame.java (ゲームを開始する関数)

2. フレーム実行クラス: gameEnterFrame.java (ループ実行を担当します。2 秒ごとに 1 回実行し、その数値をデータベースに書き込むように設定しました。)

セルフスタートには重要なポイントが 2 つあります。

1. web.xmlという設定ファイルを変更する必要があります

webRoot の下の WEB-INF 内。

残念ながら、私のものと同じパスがない場合は、間違ったプロジェクト タイプを作成したことになります。

新しい Web サーバー プロジェクトを作成することを忘れないでください。

このファイルに 3 行のコードを追加するだけで、autoRun という名前の自動開始クラスを実行することを Tomcat に指示できます。下の図のように青い部分が私が追加したコードです。

便宜上、ここに貼り付けてください。

<リスナー> 
<リスナークラス>game.autoRun</リスナークラス>
</リスナー>

この監視ステートメントを使用すると、実行時にゲーム パッケージ (ゲーム パッケージは私が独自に作成したゲーム クラス パッケージです。お好きなパッケージ名を作成できます) の下の autoRun クラスを実行できます。この autoRun クラスは私が書いた自動起動コードです。

具体的な書き方は以下を参照してください。

2. 自己起動コードの書き方:

メイン関数につながる自己開始コードが必要です。ゲームパッケージの下にautoRun.javaという名前の新しいファイルを作成します。

パッケージゲーム;
import javax.servlet.ServletContextEvent; //これは、自己起動のサーバー バックグラウンド イベントに使用されるクラスです。 import javax.servlet.ServletContextListener; //これは、自己起動のサーバー バックグラウンド リスニングに使用されるクラスです。 import game.mainGame; //簡単に実行できるように、main 関数をインポートします。 //autoRun クラスを宣言し、サーバー バックグラウンド リスニング インターフェイスを使用します。固定使用法、暗記 public class autoRun implements ServletContextListener {
//バックエンドが初期化されるとき、つまりTomcatの起動イベントが発生すると、使用法が固定されます。public void contextInitialized(ServletContextEvent arg0){
//ここで実行する必要があることを記述しますSystem.out.println("MainFunction が実行中です。"); 
mainGame.main(null);
}
//バックエンドが破棄される、つまりTomcatが閉じられる場合、使用法は固定です。public void contextDestroyed(ServletContextEvent arg0){
//ここに実行内容を記述します}
}

ご覧のとおり、Tomcat の起動とシャットダウンの状態を監視する部分は 2 つあります。

  • 一つは、やりたいことを始めることです
  • もう1つは閉まっています。どうすればいいでしょうか?

もちろん、閉鎖されており、今すぐに何か行動を起こす必要はありません。起動後にゲームのメイン機能を実行するだけです。そこで、メイン関数をスタートアップに配置しました。

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

以下もご興味があるかもしれません:
  • Tomcat 起動エラー: java.util.zip.ZipException の解決方法
  • Tomcat 起動エラー: java.lang.UnsatisfiedLinkError の解決方法
  • Java ゼロベース チュートリアル: Windows に Tomcat サーバーをインストールして起動する方法 (インストール不要バージョン)
  • tomcat の起動時にエラーが発生しました: プロキシが例外をスローしました: java.rmi.server.ExportException: ポートは既に使用されています: 1099 解決策
  • JavaWebでTomcatホットスタートを設定する方法を学ぶ

<<:  Vue開発ウェブサイトSEO最適化方法の詳細な説明

>>:  JavaScriptの擬似配列と配列の使い方と違い

推薦する

CSSはヒントボックス、バブルボックス、三角形を作成します

場合によっては、ページにプロンプ​​ト ボックスやバブル ボックスが必要になることがあります。CSS...

Vue は小数点付きの星評価を実装します

この記事では、小数点付きの星評価を実装するためのVueの具体的なコードを参考までに共有します。具体的...

InnoDB エンジンの redo ファイルのメンテナンス方法

InnoDB REDO ログ ファイルのサイズと数を調整する場合は、次の手順に従います。 1. My...

DockerでRedisを使用するための詳細な手順

1. はじめにこの記事では、Docker を使用して Redis を探索する方法を説明します。 Do...

MySQL に大量のデータを挿入するときに重複データを除外する方法

目次1. 問題を発見する2.重複したデータを残さずにすべて削除する3. 削除テーブルから重複データを...

HTML と JavaScript を使用してローカル メディア (ビデオとオーディオ) ファイルを再生する方法

まず、セキュリティ上の理由から、JavaScript はローカル リソース ファイルに直接アクセスで...

crontab でスケジュールされたタスクが実行されない理由の概要

序文最近、仕事でいくつかの問題が発生しました。crontab でスケジュールされたタスクが実行されま...

CSS が初期読み込み時の白い画面の時間に与える影響

外部 CSS ファイルを使用したレンダリング パイプライン上図では、HTML データの要求から DO...

docker公式mysqlイメージのカスタム構成の詳細な説明

インストール時間を節約するために、公式の mysql docker イメージを使用して mysql ...

ChromeとIEに対応したWMPに埋め込まれたHTMLの詳細な紹介

実際には、対応する記述方法は多数ありますが、最も一般的なのは object + embedded で...

VMware Workstation 14 Pro インストール Ubuntu 16.04 チュートリアル

この記事では、VMware Workstation14 ProにUbuntu 16.04をインストー...

Windows SSHサーバーを簡単に構築するためのいくつかの手順

ここで言及されている SSH は Security Shell と呼ばれます。Linux をよく使用...

純粋なJSを使用してセカンダリメニュー効果を実現します

この記事の例では、セカンダリメニュー効果を実現するためのJSの具体的なコードを参考までに共有していま...

webpackのモバイル適応ソリューションの概要

目次レムフォルクスワーゲンサードパーティのUIフレームワークに適応する結論モバイル開発における最も一...

Windows に WSL をインストールして構成する方法

WSLとはBaidu 百科事典からの一節を引用します。 Windows Subsystem for ...