tomcat常见报错解决

问题1 闪退问题

点击右键编辑startup.bat在最开始的地方添加下面两行:

SET JAVA_HOME=C:Program Files (x86)Javajdk1.8.0_45(jdk目录)
SET CATALINA_HOME=D:apache-tomcat-8.0.24(tomcat目录)

问题2:启动窗口乱码,默认都是UTF-8的,但是控制台是GBK的,要保持一致

打开tomcat目录下的conf/目录下logging.properties找到java.util.logging.ConsoleHandler.encoding = utf-8这行更改为java.util.loggingng.ConsoleHandler.encoding = GBK

问题3:启动时候报这样的警告:警告 [main] org.apache.catalina.webresources.Cache.getResource 无法将位于[/WEB-INF/classes/templates/framework/help/helpinfo.html]的资源添加到Web应用程序[/zhfx]的缓存中,因为在清除过期缓存条目后可用空间仍不足 - 请考虑增加缓存的最大空间。

解决办法:在 /conf/context.xml 的 </Context>前添加以下内容(大小默认是1024,单位是KB):

<Resources cachingAllowed="true" cacheMaxSize="100000" />

问题4:线程优化

conf/目录下server.xml,进行线程的配置即可。

<Connector executor="tomcatThreadPool"
              port="8080" protocol="HTTP/1.1"
              connectionTimeout="20000"
              redirectPort="8443" />
             
  <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
      maxThreads="400" minSpareThreads="4"/>
问题5 内存优化

bin/catalina.bat

1.增加内存空间

----- Execute The Requested Command -----------------------------------------

set JAVA_OPTS=%JAVA_OPTS% -server -Xms1024m -Xmx1024m -XX:PermSize=212M -XX:MaxPermSize=512m
rem ----- Execute The Requested Command ---------------------------------------
set JAVA_OPTS=%JAVA_OPTS% -server -Xms1024m -Xmx1024m -XX:PermSize=212M -XX:MaxPermSize=512m
echo Using CATALINA_BASE:   "%CATALINA_BASE%"
echo Using CATALINA_HOME:   "%CATALINA_HOME%"
echo Using CATALINA_TMPDIR: "%CATALINA_TMPDIR%"

2.线程优化

/conf/server.xml

a 配置executor属性,打开/conf/server.xml文件,在Connector之前配置一个线程池:

<Executor name="tomcatThreadPool"  
      namePrefix="tomcatThreadPool-"  
      maxThreads="1000"  
      maxIdleTime="300000"  
      minSpareThreads="200"/>

重要参数说明:

name:共享线程池的名字。这是Connector为了共享线程池要引用的名字,该名字必须唯一。默认值:None;

namePrefix:在JVM上,每个运行线程都可以有一个name 字符串。这一属性为线程池中每个线程的name字符串设置了一个前缀,Tomcat将把线程号追加到这一前缀的后面。默认值:tomcat-exec-;

maxThreads:该线程池可以容纳的最大线程数。默认值:200;

maxIdleTime:在Tomcat关闭一个空闲线程之前,允许空闲线程持续的时间(以毫秒为单位)。只有当前活跃的线程数大于minSpareThread的值,才会关闭空闲线程。默认值:60000(一分钟)。

minSpareThreads:Tomcat应该始终打开的最小不活跃线程数。默认值:25。

b配置Connector

<Connector executor="tomcatThreadPool"  
          port="8080" protocol="HTTP/1.1"  
              connectionTimeout="20000"  
              redirectPort="8443"  
          minProcessors="5"  
          maxProcessors="75"  
          acceptCount="1000"/>  

重要参数说明:executor:表示使用该参数值对应的线程池;

minProcessors:服务器启动时创建的处理请求的线程数;

maxProcessors:最大可以创建的处理请求的线程数;

acceptCount:指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。

作者:我是刘先生
地址:https://www.cnblogs.com/cekaigongchengshi/
文章转载请标明出处,如果,您认为阅读这篇博客让您有些收获,不妨点击一下推荐按钮,据说喜欢分享的,后来都成了大神

欢迎扫码关注微信公众号
原文地址:https://www.cnblogs.com/cekaigongchengshi/p/12792770.html