关于Linux下tomcat7升级到tomcat8踩过的坑
程序员文章站
2022-07-03 20:00:35
...
一、首先说说我的升级过程:
①下载tomcat8.5,上传到原tomcat7同目录,并解压
②停止运行tomcat7,拷贝项目文件夹到tomcat8的webapps文件夹下
③拷贝tomcat7的配置文件(server.xml、web.xml等)到tomcat8,覆盖更新
④将tomcat7文件夹重命名为tomcat-old,tomcat8文件夹重命名为tomcat7(本人比较懒,懒得改环境变量、nginx配置路径等)
⑤运行tomcat8(已经重命名为tomcat7)。
二、第一个坑(不算深)
然后。。。坑爹的来了,命令界面显示started,然而查看进程,实际未启动,翻看日志:
java.lang.ClassNotFoundException: org.apache.catalina.core.JasperListener
什么意思呢?就是说配置的JasperListener这个类找不到,翻看对比了一下tomcat7和tomcat8的server.xtml,发现,8的配置里压根没有这个配置,果断删除这一句:
<Listener className="org.apache.catalina.core.JasperListener" />
重新启动,成功!
三、第二个坑
然而。。。访问网址nginx给报了个403,这个我知道,就是没有访问的权限嘛,简单,在项目的根目录运行:
chmod -R 755 ./
重启nginx(貌似没必要重启),可以正常访问了!
故事还没有结束。。。
过了一会儿,有客户反应,网站上有的音频没有声音了(主要是英语单词的发音,后台代码从有道下载到服务器上的),我自己也试了下,发现是新下载的音频没有声音,以前的可以正常访问。打开F12,发现TMD还是403的问题,我这才意识到,新建的文件或目录都是默认的750权限,可是以前都是默认的755权限呢。。。由此想到,可能是tomcat版本问题,于是。。。问度娘,果然不出所料啊。
发现问题就好改了,直接改配置文件:bin/catalina.sh
这个地方改为0022,搞定!
上一篇: js内置对象笔记