Tomcat常见异常及解决方案代码实例
公司项目,开发语言为java,中间件为Tomcat,运行过程中,从Tomcat出现了一些异常,现将异常及解决办法记录如下,仅供参考。(不断在补充中.......)
异常一:
1、日志内容
org.apache.coyote.http11.AbstractHttp11Processor.processErrorparsingHTTPrequestheader
Note:furtheroccurrencesofHTTPheaderparsingerrorswillbeloggedatDEBUGlevel.
java.lang.IllegalArgumentException:Invalidcharacterfoundinmethodname.HTTPmethodnamesmustbetokens
atorg.apache.coyote.http11.AbstractNioInputBuffer.parseRequestLine(AbstractNioInputBuffer.java:233)
atorg.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1017)
atorg.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)
atorg.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520)
atorg.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476)
atjava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
atjava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
atorg.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
atjava.lang.Thread.run(Thread.java:745)
2、解决办法
在tomcat安装文件夹的conf/catalina.properties中最后添加一行:
org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true
异常二:
1、日志内容
com.alibaba.druid.stat.DruidStatService]unregistermbeanerror javax.management.InstanceNotFoundException:com.alibaba.druid:type=DruidStatService atcom.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(DefaultMBeanServerInterceptor.java:1095) atcom.sun.jmx.interceptor.DefaultMBeanServerInterceptor.exclusiveUnregisterMBean(DefaultMBeanServerInterceptor.java:427) atcom.sun.jmx.interceptor.DefaultMBeanServerInterceptor.unregisterMBean(DefaultMBeanServerInterceptor.java:415) atcom.sun.jmx.mbeanserver.JmxMBeanServer.unregisterMBean(JmxMBeanServer.java:546) atcom.alibaba.druid.stat.DruidStatService.unregisterMBean(DruidStatService.java:374) atcom.alibaba.druid.stat.DruidDataSourceStatManager.removeDataSource(DruidDataSourceStatManager.java:202) atcom.alibaba.druid.pool.DruidDataSource$2.run(DruidDataSource.java:1479) atjava.security.AccessController.doPrivileged(NativeMethod) atcom.alibaba.druid.pool.DruidDataSource.unregisterMbean(DruidDataSource.java:1475) atcom.alibaba.druid.pool.DruidDataSource.close(DruidDataSource.java:1434) atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod) atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) atjava.lang.reflect.Method.invoke(Method.java:606) atorg.springframework.beans.factory.support.DisposableBeanAdapter.invokeCustomDestroyMethod(DisposableBeanAdapter.java:354) atorg.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:277) atorg.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:578) atorg.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:554) atorg.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:972) atorg.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:523) atorg.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:979) atorg.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1006) atorg.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:982) atorg.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:934) atorg.springframework.web.context.ContextLoader.closeWebApplicationContext(ContextLoader.java:583) atorg.springframework.web.context.ContextLoaderListener.contextDestroyed(ContextLoaderListener.java:116) atorg.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4900) atorg.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5537) atorg.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:221) atorg.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1424) atorg.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1413) atjava.util.concurrent.FutureTask.run(FutureTask.java:262) atjava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) atjava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) atjava.lang.Thread.run(Thread.java:745)
2、解决办法
修改tomcat的bin目录下的catalina.sh文件,在#OSspecificsupport.$var_must_besettoeithertrueorfalse.与cygwin=false之间加上JAVA_OPTS="-Ddruid.registerToSysProperty=true"
异常三:
1、日志内容
INFO[http-nio-80-exec-16]org.apache.coyote.http11.AbstractHttp11Processor.processErrorparsingHTTPrequestheader Note:furtheroccurrencesofHTTPheaderparsingerrorswillbeloggedatDEBUGlevel. java.lang.IllegalArgumentException:Invalidcharacterfoundinmethodname.HTTPmethodnamesmustbetokens atorg.apache.coyote.http11.AbstractNioInputBuffer.parseRequestLine(AbstractNioInputBuffer.java:236) atorg.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1065) atorg.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684) atorg.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1539) atorg.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1495) atjava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) atjava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) atorg.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) atjava.lang.Thread.run(Thread.java:745)
2、解决办法
修改tomcat安装文件夹的conf/server.xml,在
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。