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

推薦する

div+cssとウェブ標準ページの利点

div 要素は、HTML ドキュメント内のブロックレベル コンテンツの構造と背景を提供するために使用...

Win2008 サーバー セキュリティ チェック手順ガイド (日常のメンテナンス手順)

ドキュメントはしばらく前から書いていましたが、アップロードする勇気がありませんでした。サーバーのセキ...

XMLとCSSスタイルの組み合わせ

学生.xml <?xml バージョン="1.0" エンコーディング=&qu...

ショートビデオ(Douyin)の透かし除去ツールの実装コード

目次1. まず最初のリンクを取得する2. ブラウザでこのリンクを開いてください3. アドレスを開くと...

MySQL 5.7.17 のインストールと設定のグラフィックチュートリアル

MySQL の機能: MySQL は、スウェーデンの会社 MySQL AB によって開発されたリレー...

JS 日付コントロール My97DatePicker の基本的な使い方

My97DatePicker は非常に柔軟で使いやすい日付コントロールです。使い方はとても簡単です。...

テーブルのネストと境界の結合の問題に対する解決策

【質問】外側のテーブルと内側のテーブルがネストされていて、内側のテーブルと外側のテーブルの両方に境界...

ElementuiはデータをxlsxとExcelテーブルにエクスポートします

最近、Vue プロジェクトについて知り、ElementUI でデータを xlsx および Excel...

ネイティブJSでマウススライドによる愛の拡散効果を実現

この記事では、マウスをスライドすると愛が広がる js 特殊効果を紹介します。効果は次のとおりです。 ...

Web デザイン TabIndex 要素

TabIndex は、Tab キーを押して、定義された TabIndex 要素を順番に取得し、各要素...

純粋な HTML ページを送信し、パラメータを渡し、ID を確認する方法

プロジェクトにはアンケートが必要ですが、クライアントはアンケートのタイトルが純粋なHTMLタグでなけ...

MySql インポート CSV ファイルまたはタブ区切りファイル

別のライブラリから別のライブラリにデータをインポートする必要がある場合があり、このデータは CSV ...

mysqlは時間を自動的に追加し、時間を自動的に追加および更新する操作を実装します

時間フィールドは、データベースの使用時によく使用されます。よく使われるのは作成時間と更新時間です。し...

MySQLプリコンパイル機能の詳細な説明

この記事では、MySQLのプリコンパイル機能について紹介します。具体的な内容は以下のとおりです。 1...

CSS transform-originプロパティを理解する

序文最近、花火アニメーションを作成しました。花火が散るアニメーションです。アニメーションの実装中、花...