• tomcat使用遇到的问题汇总


    在公司做项目过程中都是在Linux环境下用tomcat下运行应用,所以使用tomcat过程也出现过很多问题,汇总总结一下:

    1.在tomcat的webapps目录下部署好应用包之后启动报错:

    java.lang.OutOfMemoryError: PermGen space 

    查找原因:

    PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的应用中有很CLASS的话,就很可能出现PermGen space错误,这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。

    解决方法:

    手动设置MaxPermSize大小 

    修改TOMCAT_HOME/bin/catalina.bat(Linux下为catalina.sh),在Java代码 
    “echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:
    set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=128M -XX:MaxPermSize=512m

    “echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:
    set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=128M -XX:MaxPermSize=512m

    catalina.sh下为:
    Java代码
    JAVA_OPTS="$JAVA_OPTS -server -XX:PermSize=128M -XX:MaxPermSize=512m"
    JAVA_OPTS="$JAVA_OPTS -server -XX:PermSize=128M -XX:MaxPermSize=512m"

    2.Cannot find any VM in Java Home

    这是赋予可执行权限,一些配置还是未更新;

    3.The BASEDIR environment variable is not defined correctly

     This environment variable is needed to run this program

    查找原因:由于bin目录下的所有文件都没有执行权限
    解决方法:赋权限:chmod 777 -R bin/ 即可
     
    4.net.rubyeye.xmemcached.exception.MemcachedException: There is no available connection at this moment
    查找原因:没有可用的连接
     
    5.
    解决方法:安装的JDK与Eclipse的位不一致,要是32位就都是32位,64位也要一致
     
     
    6.Caused by: java.io.IOException: Illegal character in hostname at index 13: tcp://OWLinux_4.0:61616

    查找原因:部署应用的服务器的主机名即hostname要是合法的URL,例如,主机名中不能有带下划线的字符标识等。

    解决方法:主机名在/etc/hosts里修改为合法的URL

    待后续增加总结。∧_∧

  • 相关阅读:
    p1706 全排列
    2089烤鸡(类似于选数问题)
    1036选数
    bfs
    A-E
    A-3
    百题A-2
    百题A-1
    二级概念题
    随记
  • 原文地址:https://www.cnblogs.com/echo-test/p/5145994.html
Copyright © 2020-2023  润新知