今天发布应用,始终无法正常启动,将包放到内网测试(tomcat7、tomcat8),都能成功启动,问题就出现在外网配置了,查看了tomcat/conf/server.xml配置是正确的,后仔细查看日志看到很多显示不能匹配或者不能找到。
但是明明内网都能启动,后找到一条java.lang.UnsupportedClassVersionError: com/bhe/util/object/PropertiesUtil : ------显示的是不支持这个,网上查了下,说是jdk版本不支持这个配置类。
两种方法:
一、
查看jdk版本
#java -version
显示为1.7,我的印象中系统共享给程序员的版本是1.8
故下载jdk1.8
下载地址
wget --no-check-certificate --no-cookie --header "Cookie: oraclelicense=accept-securebackup-cookie;" http://download.oracle.com/otn-pub/java/jdk/8u45-b14/jdk-8u45-linux-x64.rpm
#rpm -ivh jdk-8u45-linux-x64.rpm
重新加载环境变量
#vim /etc/profile增加如下几行
export JAVA_HOME=/usr/java/jdk1.8.0_45 ##以前是jdk1.7.0_71
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
因为不想注销用户(一直认为要重启系统,现在知道只要重新登陆用户),所以用以下命令:
#source /etc/profile 使配置生效时,出现下边问题
-bash: source: command not found
找不到source命令
没有找到原因,后来查找source生效,查到一网友回复是:
/etc/profile 中的命令只有 login shell 才会去执行,所以,它的效果可以通过重新登录来检验(简捷的方法是用 ssh 来检验)。在图形界面里面打开虚拟终端(terminal 之类的)的时候,它们都不是 login shell,只会去执行 ~/.bashrc 中的命令。参看 bash 手册。
还是要重新登陆,故重新登陆用户
#java -version
版本就变成JDK1.8。
二、
只要将JDK1.8的LIB下面的TOOLS.JAR覆盖TOMCAT目录/common/lib下面的tools.jar,然后重启TOMCAT就可以了
总结:1、tomcat启动问题可以多看日志,查找原因
2、jdk版本尽量最新或者与开发版本一致
3、更改文件后,source命令可更新,更改环境变量如果source失效,用户注销重新登陆即可
本文转自 wdy198622 51CTO博客,原文链接:http://blog.51cto.com/weimouren/1830095