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

推薦する

リンク更新ページと js 更新ページの使用例

1. リンクの使用方法:コードをコピーコードは次のとおりです。 <a href="j...

mysql5.7.14 解凍版インストールグラフィックチュートリアル

MySQL は、コミュニティ エディション (コミュニティ サーバー) とエンタープライズ エディシ...

Vue codemirrorはオンラインコードコンパイラの効果を実現します

序文Web 上でオンライン コード コンパイルの効果を実現したい場合は、 CodeMirrorを再度...

MySQL 5.6 zipパッケージのインストールチュートリアルの詳細

これまでは、拡張子が .msi のファイル、つまり、完全なインストールが使用されていました。しかし、...

docker コンペ応募でよく使われるコマンドのまとめ

アカウントにログイン DOCKER_REGISTRY=registry.cn-hangzhou.al...

mysql 5.7.18 winx64 無料インストール設定方法

1. ダウンロード2. 減圧3. パス環境変数を追加し、mysqlが配置されているbinディレクトリ...

クラウド決済を実装するWeChatミニプログラムについて

目次1. はじめに2. 思考分析3. クラウド決済のケーススタディ1. クラウド機能1-1. 認証不...

Linuxで同一ファイルを見つける方法

コンピュータを使用すると、システム内に大量のゴミが生成されます。最も一般的なケースは、同じファイルが...

要素 UI に基づいてクエリ コンポーネントを段階的にカプセル化する方法

目次関数基本的なクエリ関数クエリ条件の初期化ページのレンダリングクエリと表示の最適化をさらに強化プル...

Linux 上の LAN 内のすべてのホスト名 (コンピュータ名) をすばやく一覧表示するスクリプト

最近、LAN 内のすべてのホスト名を一覧表示する必要があります (SMB プロトコル)。しかし、fi...

Linux でプロセスを効果的に管理するための 8 つのコマンド

序文プロセス管理の役割:サーバーの健全性状態を判定する: プロセスの状態 (メモリ、CPU 占有率な...

MySQLスタートアップが起こした事故の実録

目次背景MySQLが完全に起動したかどうかを確認する方法事故最初の変更2回目の改訂要約するMySQL...

Vueはログインタイプの切り替えを実装します

この記事では、ログインタイプの切り替えを実装するためのVueの具体的なコードを例として紹介します。具...

MySQL で絵文字表現を挿入できない理由と解決策

失敗のシナリオMySQL データベースに絵文字表現を挿入するために JDBC を呼び出すと、例外ja...

Mysql SQL ステートメント演習 (50 問)

テーブル名とフィールド–1. 学生リスト学生 (s_id、s_name、s_birth、s_sex)...