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 的启动错误,并解决问题


本文标签: 文件 参数 目录 执行 启动