Tomcat の文字化けしたコードとポート占有の解決方法について簡単に説明します

Tomcat の文字化けしたコードとポート占有の解決方法について簡単に説明します

Tomcat サーバーは、無料でオープン ソースの Web アプリケーション サーバーです。軽量のアプリケーション サーバーであり、小規模および中規模のシステムや同時ユーザー数が少ない状況で広く使用されています。JSP プログラムの開発とデバッグには、このサーバーが第一の選択肢です。しかし、Tomcat の起動時に文字化け、ポートの占有、Tomcat startup.bat の起動後のフラッシュバックなど、さまざまな問題に遭遇する人もいます。ここでは、それらを 1 つずつ解決します。

問題 1: Tomcat の startup.bat の起動後に文字化けした文字が表示される

ここに画像の説明を挿入

Tomcatファイルの下のconfディレクトリを探し、logging.propertiesファイルのjava.util.logging.ConsoleHandler.encodingの値をGBKに変更します。

ここに画像の説明を挿入

Tomcat を再起動します。起動ページがこのように表示される場合、文字化けの問題が解決されたことを意味します。

ここに画像の説明を挿入

問題2:突然消える港湾占拠

Tomcat を起動すると、フラッシュして終了することがあります。実際には、Tomcat ターミナルでログ出力がまだ表示されます。このとき、例外をキャプチャするには、すぐにスクリーンショットを撮る必要がありますが、これは非常に困難です。

ここに画像の説明を挿入

最も正しい方法は、ログをチェックして、Tomcat ディレクトリの下の logs ディレクトリでその日の catalina のログを見つけることです。ここではC:\develop\Tomcat\apache-tomcat-8.5.47\logs\catalina.2019-10-17.logを見つけました。ログには、次のような出力が表示されます: Address already in use: bindポートが占有されていることを示します。

2019 年 10 月 17 日 11:14:30.521 重大 [main] org.apache.catalina.core.StandardService.initInternal コネクタの初期化に失敗しました [Connector[HTTP/1.1-8080]]
	org.apache.catalina.LifecycleException: プロトコル ハンドラーの初期化に失敗しました
		org.apache.catalina.connector.Connector.initInternal(Connector.java:995) で
		org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136) で
		org.apache.catalina.core.StandardService.initInternal(StandardService.java:552) で
		org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136) で
		org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:848) で
		org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136) で
		org.apache.catalina.startup.Catalina.load(Catalina.java:639) で
		org.apache.catalina.startup.Catalina.load(Catalina.java:662) で
		sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブ メソッド)
		sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) で
		sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) で
		java.lang.reflect.Method.invoke(Method.java:498) で
		org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:309) で
		org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:492) で
	原因: java.net.BindException: アドレスが既に使用されています: bind
		sun.nio.ch.Net.bind0(ネイティブ メソッド)
		sun.nio.ch.Net.bind(Net.java:433) で
		sun.nio.ch.Net.bind(Net.java:425) で
		sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223) で
		sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74) で
		org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:219) で
		org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:1118) で
		org.apache.tomcat.util.net.AbstractJsseEndpoint.init(AbstractJsseEndpoint.java:224) で
		org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:581) で
		org.apache.coyote.http11.AbstractHttp11Protocol.init(AbstractHttp11Protocol.java:68) で
		org.apache.catalina.connector.Connector.initInternal(Connector.java:993) で
		... 13件以上

Tomcat ディレクトリの conf ディレクトリにある server.xml 構成ファイルを見つけて、コネクタ タグの Tomcat 起動ポートを変更します。

ここに画像の説明を挿入

<コネクタ ポート="9080" プロトコル="HTTP/1.1"
        接続タイムアウト = "20000"
        リダイレクトポート="8443" />

問題3: 非ポート問題のフラッシュ

Tomcat を起動すると、すぐにクラッシュします。ログ ディレクトリのログにエラー情報が見つかりません。これは、Tomcat と JDK のバージョンが対応していないことが原因である可能性があります。Tomcat が Tomcat 9 で、JDK が 1.7 である可能性があります。Tomcat と JDK のバージョンの対応については、こちらの記事を参照してください。Tomcat と JDK のバージョンの対応、Tomcat バージョンの特徴

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

以下もご興味があるかもしれません:
  • Tomcat サーバーの文字セットを utf-8 に設定して中国語の文字化けの問題を完全に解決する方法
  • Tomcat 起動時に大量の文字化けが発生する問題を解決する方法
  • この記事では、Tomcat の文字化けの問題を解決する方法について説明します (非常に詳細です)。

<<:  MySQL コマンドを使用してインデックスを作成、削除、およびクエリする方法の紹介

>>:  動的なテーブル効果を実現するJavaScript

推薦する

MySQL の従来のソート、カスタム ソート、中国語のピンイン文字によるソート

MySQL の通常のソート、カスタム ソート、中国語のピンイン文字によるソート。実際の SQL を記...

MySQL 基本チュートリアル パート 1 MySQL5.7.18 のインストールと接続チュートリアル

この記事から、MySQL を紹介し学習するための新しい一連の記事がスタートします。なぜ MySQL ...

「MySQL サービスを開始できません エラー 1069」を解決する方法

今日、外出中に同僚から、ウェブサイトのバックエンドにアクセスできないというメッセージが届きました。と...

HTML の基本概要推奨事項 (段落)

HTML段落段落は <p> タグによって定義されます。例<p>これは段落で...

MySQL データベース アーキテクチャの詳細

目次1. MySQL アーキテクチャ2. ネットワーク接続層3. データベースサービス層4. 接続プ...

Linux の操作とメンテナンスの基本 httpd 静的 Web ページ チュートリアル

目次1. ウェアハウスを使用してhttpd lrzsz解凍ファイルを作成する2. ソースコードファイ...

ES6分解課題の原理と応用

目次配列分割代入オブジェクトの分解代入分割割り当ての適用変数の値の交換関数から複数の値を返すマップ構...

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

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

Dockerボリュームマウントの実装方法

最も単純な hello world 出力イメージを作成することは最も簡単なスタートですが、実行中のコ...

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

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

Vueはスクロールバースタイルを実装します

最初はブラウザのスクロールバーのスタイルを変更して効果を実現したいと思っていましたが、情報を調べてみ...

Linux で Spring Boot プロジェクトを開始および停止するためのスクリプトの例

Springboot プロジェクトを開始するには、次の 3 つの方法があります。 1. メインメソッ...

html の img src="" で js 関数または js 変数を呼び出して、画像パスを動的に指定します。

この問題に関して、オンライン リソースをたくさん見つけました。ここにいくつかの方法を示します。コード...

MySQL GRANT ユーザー認証の実装

承認とは、ユーザーに特定の権限を付与することです。たとえば、新しく作成したユーザーに、すべてのデータ...

VueはCanvasを使用してランダムなサイズで重なり合わない円を生成します

目次キャンバス関連文書エフェクト画像表示ケースの完全なコード親コンポーネントコードサブコンポーネント...