admin 管理员组文章数量: 887021
2024年1月22日发(作者:word文本框内文字怎么换行)
上海纽斯达科技
tomcat常见错误与解决方法
上海纽斯达科技有限公司
2014-10-25
文档状态
文件状态:
【 】草稿
【 】修改稿
文档编号
作 者
审 核 人
Nsdkj-779
刘恒亮
保 密 等 级
最后完成日期
最后审核日期
最后批准日期
限制
2014-12-25
2014-12-25
2014-12-25
【√】正式发布
批 准 人
目的:
在tomcat服务器出现故障时,能快速定位并解决相关错误。
保密:
本文档仅供内部使用,请勿外传
概述:
tomcat常见错误与问题之解决方法技术指南。
安装环境:
系统环境:redhat enterprise 6.5 64bit
注释:Q代表问题,A代表错误解决办法
Q:在以tomcat用户启动tomcat时提示:
The JAVA_HOME environment variable is not defined This environment variable is
needed to run this program
A:没有在在tomcat的配置文件.bash_profile中设置环境变量JAVA_HOME,具体设置方法为
:加入如下几行:
JAVA_HOME=/home/tomcat/j2sdk1.4.2_08(具体值要以实际的jdk安装路径为准)
export JAVA_HOME
CLASSPATH=/home/tomcat/j2sdk1.4.2_08/lib/:/home/tomcat/j2sdk1.4.2_08/lib/
export CLASSPATH
Q: 在以tomcat用户登录linux系统后,提示:
-bash: /home/tomcat/j2sdk1.4.2_08: is a directory
-bash:/home/tomcat/j2sdk1.4.2_08/lib/:/home/tomcat/j2sdk1.4.2_08/lib/:没有那个文件或目录。
A: 在tomcat的配置文件.bash_profile中JAVA_HOME和CLASSPATH两个变量值的等号“=”后
面存在空格,造成路径不能识别。
Q: 在tomcat启动时提示:
Error occurred during initialization of VM
Could not reserve enough space for object heap
A: 在tomcat的bin目录下,文件的tomcat内存参数配置过大,超过机器可用内
存总数造成,修改到适当的值即可,修改的参数为:JAVA_OPTS="-Xms50m -Xmx60m"
Q:信息发布后台管理,点击“网站发布”后,提示:
“由于发生I/O错误.原因,发布失败,请联系管理员或稍后再试!”
A:在防火墙上做了端口映射,使后台登录端口不是真正的服务器发布端口,修正方法:登
录信息发布后台管理时,使用服务器中原本设置的端口号。
Q:信息发布系统发布的静态页部分字符缺少,不能正常显示。
A:原因:linux企业版的缺省字符集为GB18030,jdk对该字符集的支持出现问题。
解决方法:修改/etc/sysconfig/下的i18n文件,将如下两行:
LANG="zh_18030"
LANGUAGE="zh_18030:zh_2312:zh_CN"
修改为:
LANG="zh_"
LANGUAGE="zh_:zh_18030:zh_2312:zh_CN"
Q:如何在Windows下将tomcat装成服务:
A: 1. 打开DOS命令窗口
2. 进入tomcat的bin路径下(tomcat的路径不要有中文和空格)
3. 执行 install,注意:中间是空格,没有中横线。 服务即安装完成。
4.进入tomcat的bin目录下,双击
5. 在弹出的管理介面中,点击java页签,查看:
a:Java Virtual Machine一栏是否已经记录了java虚拟机的路径(即路径),如果没有,请点击右侧选择按钮,找到jdk路径下
b:Java Classpath一栏是否已经记录了类路径,包括两方面:一个是tomcat自己的启动包,应该指向tomcat下的bin ,第二个是jdk的工具包,指向的是jdk安装路径下的,如果这两个路径没有或不完整,请按照 tomcat和jdk的实际安装路径填写完整。否则tomcat服务不能成功启动。
说明:以上参数如果jdk提前已经正确安装,就会一切正常。
6. 在Windows的服务管理和两个地方都可以停止和启动tomcat服务
7. 如果要卸载tomcat服务,请打开DOS命令窗口,进入tomcat的bin路径下(tomcat的路径不要有中文和空格),执行 remove,注意:中间是空格,没有中横线。 服务即卸载完成。
Q:如何在在solaris9上升级j2sdk1.4.2
A: 1.安装文档在:/j2se/1.4.2/
2. 注意要安装solaris的sdk的专门补丁包,在/pub-
cgi/?target=patches/J2SE下载补丁.
3. 安装补丁: unzip J2SE_Solaris_9_到/var/sadm/patch
4.运行:./install_cluster
j2sdk-1_4_2_.Z|tar -xf -
6.去掉j2sdk1.3: pkgrm SUNWj3dmo SUNWj3man SUNWj3dev SUNWj3rt
-d . SUNWj3cfg SUNWj3dev SUNWj3dmo SUNWj3jmp SUNWj3man SUNWj3rt
8. 注意,在装64位jdk之前一定要先安装32位的.
Q:tomcat启动时报某个目录没有权限,启动失败,或者不能执行某些jsp页
A:tomcat需要tomcat用户具有一些目录和文件的相应权限, 所有目录应该具有读写执行(浏览)的权限,jsp,class文件应该最少具有读权限, 一些文件需要写权限,下面是已知的需要读写权限文件的列表:
$CATALINA_HOME/logs下所有文件
$CATALINA_HOME/work下所有文件
$CATALINA_HOME/publish/main/文件
$CATALINA_HOME/publish/chatroom/resource下的所有.xml文件
所有上传图片目录都需要写权限。
改变文件目录权限的方法:执行下面命令,设置所有的tomcat安装下的文件和目录,可以保证执行,但是不是很安全。
1. 设置tomcat上级目录/opt所有用户都有读写执行权限:
chmod 777 [tomcat的上级目录]
2. 设置tomcat5.0.28目录下的所有文件的属主为tomcat:
chown -R tomcat [tomcat安装目录]
3. 设置所有tomcat5.0.28下的所有文件和目录的属主(tomcat)具有读写执行权限
chmod 700 -R /opt/tomcat5.0.28
Q:执行文件时告诉没有权限不能执行,但这个文件的署主就是当前用户
A: bin目录下的所有.sh文件都应该设置执行权限,命令为:
chmod 777 [文件名称]
Q:执行文件后告诉地址已经使用,导致tomcat不能启动
A: 可能是前一次执行./文件关闭tomcat时没有停止已经启动的java进程,而这个进程仍然在监听tomcat所使用的端口,或者有另外一个tomcat正在运行,文件中的监听端口和当前tomcat冲突。使用下面命令查看当前系统是否有正在监听的端口(8080--webcache, 90--www或http).
1. 列出所有系统正在监听的端口和绑定的地址netstat -l
2. 找出当前系统中的所有进程,管道符号过滤输出显示包含java字符串的行
ps -A |grep java
1021 ? java
kill [进程号]
kill -9 [进程号]
tty time proc
3. 结束一个指定的进程:
4. 强制杀死一个进程:
如果确定不是别的tomcat运行导致的冲突或者没有java进程运行可以再次运行文件启动tomcat
Q:如何将linux的8080端口映射到80端口
A: 首先要已root用户登录linux系统,然后执行如下命令:
1. 编辑映射策略:
/sbin/iptables -t nat -A PREROUTING -j REDIRECT -p tcp --destination-port 80:80
--to-ports 8080
2. 保存设置:
/sbin/service iptables save
Q:Linux下调整VCM系统运行参数之(一)如何调整tomcat的数据库连接参数
A: 方法如下:
1. 编辑tomcat安装目录下的conf目录下的文件
vi
2. 查找到tomcat数据库用户名称参数一行:/username
将 username vcmtest一段的value值更改数据库的有效帐户
3.查找到tomcat数据库用户名称参数一行:/password
将 password vcmtest一段的password值更改数据库的登录口令
4.查找到tomcat数据库用户名称参数一行:/url
将 username vcmtest一段的value值更改数据库的有效帐户
Q:Linux下调整VCM系统运行参数之(二)如何调整tomcat的占用内存
A: 方法如下:
1. 编辑tomcat安装目录下的bin目录下的文件
vi
2. 查找到tomcat内存参数一行:/ JAVA_OPTS
3. 将JAVA_OPTS="-Xms 1024m –Xmx 1520m"一行的两个参数依据服务器实际内存数量分别进行更改:
- Xms为tomcat启动初始内存,一般为服务器开机后可用空闲内存减去100兆
- Xmx为tomcat最大占用内存,一般为服务器开机后可用空闲内存减去50兆
说明:以上两个参数关系到tomcat承受的访问性能,但也要根据服务器实际内存情况设定。
Q:Linux下调整VCM系统运行参数之(三)如何调整tomcat的线程参数
A: 方法如下:
1.编辑tomcat安装目录下的conf目录下的文件
vi
2. 查找到tomcat内存参数一段:/ maxThreads
3. 将maxThreads="450" minSpareThreads="100" maxSpareThreads="300"一段的三个参数依据服务器实际内存数量分别进行更改:
maxThreads为tomcat最大线程数,一般可设置为400~800
minSpareThreads为tomcat最小共享线程数,一般可设置为100
maxSpareThreads为tomcat最大共享线程数,一般可设置为最大线程数减去50
Q:启动服务器后无异常抛出,但无法打开网页:
A:检查linux线程($ps -A)是否有未关闭的java进程。
Q:servlet方法实现中,doPost方法中界面传值中文为乱码
A:在代码中存取第一个参数之前添加代码:
tentType("text/html; charset=gbk");
racterEncoding("GBK");
Q:servlet方法实现中,doGet方法中界面传值中文为乱码
A:tomcat目录下conf下,文件
找到 redirectPort="8443"/>改为: connectionTimeout="20000" redirectPort="8443" URIEncoding="GB Q: Tomcat 的启动窗口一闪而过,根本就看不出启动过程中发生了什么错误。 A: 这中间的原因有好多种,最常见的解决办法就是使用run 命令,打开 文件,找到下面这行: call "%EXECUTABLE%" start %CMD_LINE_ARGS% 并将它修改为: call "%EXECUTABLE%" run %CMD_LINE_ARGS% 这样, Tomcat 启动时就不会弹出新窗口,我们就可以从容不迫地观察Tomcat 的启动错误,并解决问题
版权声明:本文标题:tomcat常见错误与解决方法 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1705916813h493698.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论