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

MySQL-Passwort ist korrekt, aber keine lokale Anmeldung möglich -1045

MySQL-Passwort ist korrekt, aber keine lokale Anm...

So implementieren Sie eine steuerbare gepunktete Linie mit CSS

Vorwort Die Verwendung von CSS zum Generieren gep...

Implementierung der automatischen Vervollständigung von Docker-Befehlen

Vorwort Ich weiß nicht, wie lange dieser Freund D...

Zusammenfassung der Methoden zum Einfügen von Videos in HTML-Seiten

Wenn Sie nun das Video-Tag auf einer Seite verwen...

Detaillierte Erläuterung des Vue Router Routing Guard

Inhaltsverzeichnis 1. Global vor jedem 1. Global ...

Implementierung von Nginx-Weiterleitungsübereinstimmungsregeln

1. Regulärer Ausdrucksabgleich ~ für Groß- und Kl...

Tutorial zur Installation von MySQL 5.7.28 auf CentOS 6.2 (MySQL-Hinweise)

1. Umweltvorbereitung 1.MySQL-Installationspfad: ...

Beheben von Problemen mit hoher MySQL-CPU-Auslastung

Hohe CPU-Last durch MySQL Heute Nachmittag habe i...

Ein Artikel zum Verständnis der erweiterten Funktionen von K8S

Inhaltsverzeichnis Erweiterte Funktionen des K8S ...

Miniprogramm zur Implementierung der Sieve-Lotterie

In diesem Artikelbeispiel wird der spezifische Co...

Was ist WML?

WML (Wireless Markup Language). Es handelt sich u...