迁移时间--2017年7月9日14:58:12
Author:Marydon
CreateTime--2016年12月25日21:55:09
Author:Marydon
Tomcat问题总结
问题一
An incompatible version 1.1.19 of the APR based Apache Tomcat Native library is installed, while Tomcat requires version 1.1.32
解决办法:
这实际上是tomcat推荐使用apache的apr,需要APR1.1.32的版本
问题二
java.lang.UnsatisfiedLinkError: D:\Studying\tomcat\apache-tomcat-7.0.59\bin\tcnative-1.dll: Can't load AMD 64-bit .dll on a IA 32-bit platform
解决办法:
tomcat的版本和jdk的位数不一致
问题三:tomcat启动报错
Removing obsolete files from server..
Could not clean server of obsolete files: null
java.lang.NullPointerException
解决方案:
sever.xml文件热部署项目时,配置的项目访问路径不能为空即path != ""
问题四
java.lang.IllegalStateException: Web app root system property already set to different value: 'webapp.root' = [....\tmp1\wtpwebapps\workreport\] instead of [.....\wtpwebapps\ApprovalFront\]
- Choose unique values for the 'webAppRootKey' context-param in your web.xml files!
解决方案:
1.清理tomcat的webapps目录;
2.在web.xml中添加
原因:
在tomcat下部署两个或多个项目时,web.xml文件中最好定义webAppRootKey参数,如果不定义,将会缺省为"webapp.root",如下:
问题五:配置/运行tomcat弹出类似这样的报错信息:
Could not load the Tomcat server configuration at /Servers/Tomcat v6.0 Server at localhost-config. The configuration may be corrupt or incomplete.
解决方案:
点击detail-->查看详细错误信息
a.注释中不能出现"--" -->server.xml中删掉多余的"--"
b.注释中不能出现"字符串" -->server.xml中设置文件格式为"UTF-8"
问题六
tomcat服务器server.xml文件中配置中文,启动tomcat出错
解决方案:
使用Editplus打开该文件,右下角有文件编码字符集,双击选择编码UTF-8,保存即可
UpdateTime--2017年3月7日17:06:39
问题七
Failed to retrieve JNDI naming context for container [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/demo]] so no cleanup was performed for that container
javax.naming.NamingException: No naming context bound to this class loader
解决方案:
tomcat jar包缺失,重装tomcat
UpdateTime--2017年5月12日10:34:58
问题八
GET方式提交的数据(请求)乱码
说明:利用request.setCharacterEncoding("UTF-8");来设置Tomcat接收请求的编码格式,只对POST方式提交的数据有效,对GET方式提交的数据无效!
解决方案:
要设置GET的编码,可以修改server.xml文件中,相应的端口的Connector的属性:URIEncoding="UTF-8",这样,GET方式提交的数据才会被正确解码。
作者:Marydon