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

推薦する

CSS で div にスクロールを追加し、スクロール バーを非表示にする

CSS は div にスクロールを追加し、スクロール バーを非表示にします。具体的なコードは次のとお...

Linux でハードディスクのサイズを確認し、ハードディスクをマウントする方法

Linux には、マウントされたハードディスクとマウントされていないハードディスクの 2 種類のハー...

MySQL パスワードは正しいが、ローカルにログインできない -1045

MySQLパスワードは正しいが、ローカルでログインできない -1045 ユーザー 'roo...

Centos で MySQL パスワードを変更する方法

1. MySQL ログイン設定を変更します。 # vim /etc/my.cnf文を追加: skip...

ウェブページの読みやすさを向上させるいくつかの方法

1. 対照的な色を使用します。ここでのコントラストとは、テキストの色と背景色のコントラストを指します...

DockerにMySQL 8.0をインストールする方法

環境: MacOS_Cetalina_10.15.1、Mysql8.0.18、Docker_2.0....

JavaScript で 9 グリッドのモバイル パズル ゲームを実装

この記事では、Jiugonggeモバイルパズルゲームを実装するためのJavaScriptの具体的なコ...

MySQL での IN データボリュームの使用の最適化された記録

MySQL のバージョン番号は 5.7.28 です。テーブル A には 390 万件のレコードがあり...

初心者向けのMySQLデータベースとテーブルDDLの作成と操作の学習

目次1. データベースを操作する1.1 データベースを作成する1.2 データベースをクエリする1.3...

フォーム送信ページの更新がジャンプしない

1. ソースコードの設計コードをコピーコードは次のとおりです。 <!DOCTYPE html ...

MySQL無料インストール版のパスワードの設定と変更に関するチュートリアル

ステップ 1: 環境変数を構成する (解凍パス: G:\mysql\mysql-5.7.21-win...

単語のグループ化シーケンスと複数フィールドのグループ化のための MySQL グループ方法

ここで商品テーブルを作成しました。その中のデータを見てみましょう。 mysql> 商品から *...

vue3+threejs を使用して iView 公式サイトのビッグウェーブ特殊効果の例を模倣する

目次序文1. レンダリング2. コード3. 背景画像素材要約する序文Threejs は、Web ベー...

Vue3.0 でページング コンポーネントを手動でカプセル化する方法

この記事では、vue3.0の手動カプセル化ページングコンポーネントの具体的なコードを参考までに紹介し...

MySQL データベース テーブルとデータベース パーティショニング戦略

まず、テーブルを分割する必要がある理由について説明します。データシートが数百万に達すると、1 回のク...