• 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/
    文章转载请标明出处,如果,您认为阅读这篇博客让您有些收获,不妨点击一下推荐按钮,据说喜欢分享的,后来都成了大神

    欢迎扫码关注微信公众号
  • 相关阅读:
    ReentrantReadWriteLock读写锁的使用
    Exchanger的使用
    CyclicBarrier的用法
    Semaphore的使用
    CountDownLatch的使用
    BlockingQueue的使用
    对字符串操作的各种笔试题
    struts2请求过程源码分析
    shell语法使用
    hibernate调用mysql存储过程
  • 原文地址:https://www.cnblogs.com/cekaigongchengshi/p/12792770.html
Copyright © 2020-2023  润新知