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

待后续增加总结。∧_∧

原文地址:https://www.cnblogs.com/echo-test/p/5145994.html