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

推薦する

Linux で PHP を 5.6 にアップグレードする実用的な方法

1: ターミナルに入ったらPHPのバージョンを確認する php -v出力は次のようになります。 PH...

nginx で複数のフロントエンド プロジェクトをデプロイするいくつかの方法

nginx を使用して 1 つのサーバーに複数のフロントエンド プロジェクトをデプロイする 3 つの...

15 分で学べる並列アーティファクト GNU Parallel 入門ガイド

GNU Parallel は、1 台以上のコンピューター上で計算タスクを並列に実行するためのシェル ...

Excel ファイルを MySQL データベースにインポートする方法

この記事では、ExcelファイルをMySQLデータベースにインポートする方法を参考までに紹介します。...

PXEを使用してCentOS7.6を自動的にインストールする方法の詳細なチュートリアル

1. 需要ベースには 300 台の新しいサーバーがあり、CentOS7.6 オペレーティング システ...

Alibaba Cloud Centos7.X で外部にポートを開く方法

一言で言えば、大手メーカーからクラウド サーバーを購入する場合は、セキュリティ グループに移動して、...

MySQL 継続的集計の原理と使用法の分析

この記事では、例を使用して、MySQL の継続的な集計の原理と使用方法を説明します。ご参考までに、詳...

よく使われるCSSカプセル化方法の概要

1. pc-reset PCスタイルの初期化 /* 正規化.css */ html{ 行の高さ: 1...

MYSQL フルバックアップ、マスタースレーブレプリケーション、カスケードレプリケーション、および半同期の概要

MySQL フルバックアップ1. バイナリログを有効にし、データベースから分離して別々に保存する v...

MySQL グループレプリケーションの設定手順 (推奨)

MySQL-Group-Replication は、MySQL-5.7.17 で開発された新しい機...

MySQL でデータ テーブルを作成し、主キーと外部キーの関係を確立する方法の詳細な説明

序文MySQL テーブルの主キーと外部キーを作成するときは、次の点に注意する必要があります。主キーと...

MySQL LOAD_FILE() 関数メソッドの概要

MySQL では、LOAD_FILE() 関数はファイルを読み取り、その内容を文字列として返します。...

Reactでaxiosを使用してリクエストを送信する一般的な方法

目次Reactにaxios依存関係をインストールして導入するGETリクエストにaxiosを使用するa...

Intelli Idea で Tomcat 設定が見つからない問題の解決方法

2日前に新しい会社に入社しました。その会社ではIntelli Ideaを使っています。Eclipse...