Eine kurze Diskussion über die Lösung des Problems mit verstümmeltem Code und der Portbelegung bei Tomcat

Eine kurze Diskussion über die Lösung des Problems mit verstümmeltem Code und der Portbelegung bei Tomcat

Der Tomcat-Server ist ein kostenloser und quelloffener Webanwendungsserver. Es handelt sich um einen leichtgewichtigen Anwendungsserver, der häufig in kleinen und mittelgroßen Systemen und in Situationen eingesetzt wird, in denen es nicht viele gleichzeitige Benutzer gibt. Er ist die erste Wahl für die Entwicklung und das Debuggen von JSP-Programmen. Einige Freunde werden jedoch beim Starten von Tomcat auf verschiedene Probleme stoßen, wie zum Beispiel verstümmelte Zeichen, Portbelegung und Flashback nach dem Starten von Tomcat startup.bat. Hier werden wir sie nacheinander lösen.

Problem 1: Nach dem Start von Tomcats startup.bat werden verstümmelte Zeichen angezeigt

Bildbeschreibung hier einfügen

Suchen Sie das conf-Verzeichnis unter der Tomcat-Datei und ändern Sie den Wert von java.util.logging.ConsoleHandler.encoding in der Datei logging.properties in GBK.

Bildbeschreibung hier einfügen

Starten Sie Tomcat neu. Wenn die angezeigte Startseite so aussieht, bedeutet dies, dass das Problem mit der unleserlichen Information behoben wurde.

Bildbeschreibung hier einfügen

Problem 2: Plötzlich verschwindende Hafenbesetzung

Wenn Sie Tomcat starten, blinkt es möglicherweise und wird beendet. Tatsächlich können Sie die Protokollausgabe vom Tomcat-Terminal immer noch sehen. Zu diesem Zeitpunkt müssen Sie schnell einen Screenshot machen, um die Ausnahme zu erfassen, was zu schwierig ist.

Bildbeschreibung hier einfügen

Am besten überprüfen Sie die Protokolle und suchen das Catalina-Protokoll dieses Tages im Protokollverzeichnis unter dem Tomcat-Verzeichnis . Ich habe C:\develop\Tomcat\apache-tomcat-8.5.47\logs\catalina.2019-10-17.log hier gefunden. Im Protokoll sehen Sie eine Ausgabe wie diese: Address already in use: bind zeigt an, dass der Port belegt ist.

17.10.2019 11:14:30.521 SEVERE [main] org.apache.catalina.core.StandardService.initInternal Connector konnte nicht initialisiert werden [Connector[HTTP/1.1-8080]]
	org.apache.catalina.LifecycleException: Initialisierung des Protokollhandlers fehlgeschlagen
		bei org.apache.catalina.connector.Connector.initInternal(Connector.java:995)
		bei org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
		bei org.apache.catalina.core.StandardService.initInternal(StandardService.java:552)
		bei org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
		bei org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:848)
		bei org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
		bei org.apache.catalina.startup.Catalina.load(Catalina.java:639)
		bei org.apache.catalina.startup.Catalina.load(Catalina.java:662)
		bei sun.reflect.NativeMethodAccessorImpl.invoke0 (native Methode)
		bei sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
		bei sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
		bei java.lang.reflect.Method.invoke(Method.java:498)
		bei org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:309)
		bei org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:492)
	Ursache: java.net.BindException: Adresse wird bereits verwendet: bind
		bei sun.nio.ch.Net.bind0 (native Methode)
		bei sun.nio.ch.Net.bind(Net.java:433)
		bei sun.nio.ch.Net.bind(Net.java:425)
		bei sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
		bei sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
		bei org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:219)
		bei org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:1118)
		bei org.apache.tomcat.util.net.AbstractJsseEndpoint.init(AbstractJsseEndpoint.java:224)
		bei org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:581)
		bei org.apache.coyote.http11.AbstractHttp11Protocol.init(AbstractHttp11Protocol.java:68)
		bei org.apache.catalina.connector.Connector.initInternal(Connector.java:993)
		... 13 mehr

Suchen Sie die Konfigurationsdatei server.xml im Verzeichnis conf im Tomcat-Verzeichnis und ändern Sie den Tomcat-Startport im Connector-Tag.

Bildbeschreibung hier einfügen

<Anschlussport="9080" Protokoll="HTTP/1.1"
        VerbindungsTimeout="20000"
        UmleitungsPort="8443" />

Problem 3: Ein Blitz ohne Portproblem

Wenn Sie Tomcat starten, stürzt es sofort ab. In den Protokollen im Protokollverzeichnis werden keine Fehlerinformationen gefunden. Dies liegt wahrscheinlich daran, dass die Tomcat- und JDK-Versionen nicht übereinstimmen. Es ist möglich, dass Ihr Tomcat Tomcat 9 und Ihr JDK 1.7 ist. Informationen zur Übereinstimmung zwischen Tomcat- und JDK-Versionen finden Sie in diesem Artikel: Übereinstimmung zwischen Tomcat- und JDK-Versionen, Funktionen von Tomcat-Versionen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • So konfigurieren Sie den Zeichensatz des Tomcat-Servers auf UTF-8, um das Problem der verstümmelten chinesischen Zeichen vollständig zu lösen
  • So lösen Sie das Problem einer großen Anzahl verstümmelter Zeichen beim Starten von Tomcat
  • In diesem Artikel erfahren Sie, wie Sie das Tomcat-Garbled-Problem lösen (sehr ausführlich!).

<<:  Einführung in die Verwendung von MySQL-Befehlen zum Erstellen, Löschen und Abfragen von Indizes

>>:  JavaScript zum Erzielen eines dynamischen Tabelleneffekts

Artikel empfehlen

Detaillierte Erläuterung der Tomcat-Konfigurations- und Optimierungslösungen

Service.xml Die Konfigurationsdatei Server.xml wi...

Lösung für den Fehler „Mehrere Primärschlüssel definiert“ in MySQL

Es gibt zwei Möglichkeiten, einen Primärschlüssel...

Beispielcode zur Implementierung eines zufälligen Roll Callers in HTML

Nachdem dieses Namensaufrufgerät mit dem Aufruf d...

So verwenden Sie HTML+CSS zum Erstellen einer TG-Vision-Homepage

Dieses Mal verwenden wir HTML+CSS-Layout, um eine...

Gründe, warum MySQL den Abfrage-Cache abgebrochen hat

MySQL hatte zuvor einen Abfragecache, Query Cache...

Detaillierte Erklärung zur Überwachung von MySQL-Anweisungen

Schnelles Lesen Warum müssen wir SQL-Anweisungen ...

Detaillierte Erklärung zu MySQL und Springs Autocommit

1 MySQL Autocommit-Einstellungen MySQL führt stan...

MySQL-Rekursionsproblem

MySQL selbst unterstützt keine rekursive Syntax, ...

Bringen Sie Ihnen bei, ein einfaches Versprechen Schritt für Schritt umzusetzen

Inhaltsverzeichnis Schritt 1: Erstellen Sie das F...

Tutorial zur Installation von MySQL8 auf Centos7

Neue Funktionen in MySQL 8: Meine persönliche Mei...

Font Treasure House 50 exquisite kostenlose englische Schriftartenressourcen Teil 1

Designer verfügen über eine eigene Schriftartenbi...

Detaillierte Analyse des Reaktionsprinzips und der bidirektionalen Daten von Vue

Verstehen von object.defineProperty, um Reaktions...