Häufige Tomcat-Ausnahmen und Lösungscodebeispiele

Häufige Tomcat-Ausnahmen und Lösungscodebeispiele

Das Unternehmensprojekt wurde in Java entwickelt und die Middleware war Tomcat. Während des Vorgangs traten in Tomcat einige Ausnahmen auf. Die Ausnahmen und Lösungen werden im Folgenden nur zu Referenzzwecken aufgezeichnet. (Wird laufend ergänzt...)

Anomalie 1:

1. Protokollinhalte

org.apache.coyote.http11.AbstractHttp11Processor.process Fehler beim Parsen des HTTP-Anforderungsheaders
Hinweis: Weitere Vorkommen von HTTP-Header-Analysefehlern werden auf DEBUG-Ebene protokolliert.
java.lang.IllegalArgumentException: Ungültiges Zeichen im Methodennamen gefunden. HTTP-Methodennamen müssen Token sein
bei org.apache.coyote.http11.AbstractNioInputBuffer.parseRequestLine(AbstractNioInputBuffer.java:233)
bei org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1017)
bei org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)
bei org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520)
bei org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476)
bei java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
bei java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
bei org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
bei java.lang.Thread.run(Thread.java:745)

2. Lösung

Fügen Sie der Datei conf/catalina.properties im Tomcat-Installationsordner die folgende Zeile hinzu:

org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true

Ausnahme 2:

1. Protokollinhalte

com.alibaba.druid.stat.DruidStatService]MBean-Fehler beim Aufheben der Registrierung
javax.management.InstanceNotFoundException: com.alibaba.druid:type=DruidStatService
	bei com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(DefaultMBeanServerInterceptor.java:1095)
	bei com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.exclusiveUnregisterMBean(DefaultMBeanServerInterceptor.java:427)
	bei com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.unregisterMBean(DefaultMBeanServerInterceptor.java:415)
	bei com.sun.jmx.mbeanserver.JmxMBeanServer.unregisterMBean(JmxMBeanServer.java:546)
	bei com.alibaba.druid.stat.DruidStatService.unregisterMBean(DruidStatService.java:374)
	bei com.alibaba.druid.stat.DruidDataSourceStatManager.removeDataSource(DruidDataSourceStatManager.java:202)
	bei com.alibaba.druid.pool.DruidDataSource$2.run(DruidDataSource.java:1479)
	bei java.security.AccessController.doPrivileged (native Methode)
	bei com.alibaba.druid.pool.DruidDataSource.unregisterMbean(DruidDataSource.java:1475)
	bei com.alibaba.druid.pool.DruidDataSource.close(DruidDataSource.java:1434)
	bei sun.reflect.NativeMethodAccessorImpl.invoke0 (native Methode)
	bei sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	bei sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	bei java.lang.reflect.Method.invoke(Method.java:606)
	bei org.springframework.beans.factory.support.DisposableBeanAdapter.invokeCustomDestroyMethod(DisposableBeanAdapter.java:354)
	bei org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:277)
	bei org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:578)
	bei org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:554)
	bei org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:972)
	bei org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:523)
	bei org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:979)
	bei org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1006)
	bei org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:982)
	bei org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:934)
	bei org.springframework.web.context.ContextLoader.closeWebApplicationContext(ContextLoader.java:583)
	bei org.springframework.web.context.ContextLoaderListener.contextDestroyed(ContextLoaderListener.java:116)
	bei org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4900)
	bei org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5537)
	bei org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:221)
	bei org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1424)
	bei org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1413)
	bei java.util.concurrent.FutureTask.run(FutureTask.java:262)
	bei java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	bei java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	bei java.lang.Thread.run(Thread.java:745)

2. Lösung

Ändern Sie die Datei catalina.sh im Bin-Verzeichnis von Tomcat und fügen Sie JAVA_OPTS="-Ddruid.registerToSysProperty=true" zwischen # OS-spezifischer Unterstützung hinzu. $var _muss_ entweder auf true oder false gesetzt werden. und cygwin=false

Ausnahme drei:

1. Protokollinhalte

INFO [http-nio-80-exec-16] org.apache.coyote.http11.AbstractHttp11Processor.process Fehler beim Parsen des HTTP-Anforderungsheaders
 Hinweis: Weitere Vorkommen von HTTP-Header-Analysefehlern werden auf DEBUG-Ebene protokolliert.
 java.lang.IllegalArgumentException: Ungültiges Zeichen im Methodennamen gefunden. HTTP-Methodennamen müssen Token sein
	bei org.apache.coyote.http11.AbstractNioInputBuffer.parseRequestLine(AbstractNioInputBuffer.java:236)
	bei org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1065)
	bei org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)
	bei org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1539)
	bei org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1495)
	bei java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	bei java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	bei org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	bei java.lang.Thread.run(Thread.java:745)

2. Lösung

Ändern Sie die Datei conf/server.xml im Tomcat-Installationsordner. In <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" maxHttpHeaderSize ="10240" redirectPort="8443" /> beträgt der Standardwert von maxHttpHeaderSize 8*1024. Sie müssen ihn nur auf den gewünschten Wert anpassen.

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:
  • Das SpringBoot-Projekt wird gepackt und im externen Tomcat veröffentlicht (unter Behebung verschiedener Ausnahmen).
  • Eine Lösung für den abnormalen Ausgang von Tomcat, der durch Semaphore verursacht wird
  • Analyse und Lösung des abnormalen Problems beim Laden von JAR in Tomcat
  • Ursachen und Lösungen für die Ausnahme getOutputStream() wurde für diese Antwort bereits in jsp unter tomcat6 aufgerufen
  • Fehler beim Starten von Tomcat: Der Proxy hat eine Ausnahme ausgelöst: java.rmi.server.ExportException: Port wird bereits verwendet: 1099 Lösung
  • Lösen Sie das Problem, dass idea2020.2 auf einen Fehler in der Datei pom.xml stößt Maven-Plugin tomcat7
  • Lösen Sie das Problem des IDEA-Konfigurations-Tomcat-Startfehlers
  • Beheben Sie das Problem des Fehlers 404 beim Starten von Tomcat nach dem Importieren eines SSM-Projekts in Idea
  • Tomcat-Startfehler: Lösung für java.util.zip.ZipException
  • Tomcat-Ausnahmelösung (Ungültiges Zeichen im Anforderungsziel gefunden. Die gültigen Zeichen sind in RFC 7230 und RFC 3986 definiert)

<<:  VUE führt die Implementierung der Verwendung von G2-Diagrammen ein

>>:  Häufige Szenarien und Vermeidungsmethoden für Indexfehler in MySQL

Artikel empfehlen

Grafische Installationsschritte für VMware vSphere 6.7 (ESXI 6.7)

Umgebung: VMware VCSA 6.7 (VMware-VCSA-all-6.7.0-...

Front-End-KI-Schnitttipps (Erfahrung)

Das AI-Bildschneiden muss mit PS koordiniert werd...

So legen Sie den Standardwert für den Datums-/Uhrzeittyp in MySQL fest

Beim Ändern des Standarddatums-/Uhrzeitwerts über...

So erstellen Sie eine Tabelle in MySQL und fügen Feldkommentare hinzu

Code und Beispiele direkt posten #Schreiben Sie K...

Implementierung von React-Loop-Daten (Liste)

Lassen Sie uns zunächst die Daten simulieren, die...

Zusammenfassung der praktischen Methoden von CSS3 (empfohlen)

1. Abgerundeter Rand: CSS- CodeInhalt in die Zwis...

So konfigurieren Sie den Nginx-Lastausgleich

Inhaltsverzeichnis Nginx-Lastausgleichskonfigurat...

Detaillierte Erklärung der MySQL-Partitionstabelle

Vorwort: Partitionierung ist ein Tabellenentwurfs...

IDEA verwendet das Docker-Plugin (Tutorial für Anfänger)

Inhaltsverzeichnis veranschaulichen 1. Aktivieren...

So ändern Sie die Standardübermittlungsmethode des Formulars

Die Standard-Übermittlungsmethode von HTML ist get...