云服务器Tomcat版本升级(Tomcat6升级至Tomcat7和Tomcat8)问题总结

由于合作甲方新项目的原因,需要将Tomcat6升级到Tomcat8。一开始我也是一头雾水,感觉要涉及到的东西应该会很多。因为老系统遇上新版本难免会出现版本不兼容的情况,由于只有部署包,如果出现需要更改代码的问题,那就蛋疼了。

        简单介绍下环境:

        旧版本:Tomcat6.018,jdk1.6,windows 2008 r2

        新版本:Tomcat8.045,jdk1.8,windows 2008 r2

        1.安装jdk1.8
        直接安装并配置环境变量即可,若要在jdk1.6和jdk1.8直接切换,可参考我的另一篇文章《windows下jdk版本切换(安装多个版本jdk) 》。  
        2.安装Tomcat8.0
        安装过程中注意端口的更换,若要同时运行Tomcat6和Tomcat8,则需要更换端口,例如我更换的:

        8080-->8088
        8005-->8015
        8009-->8019

        端口号可在tomcat8.0conf下的server.xml文件中修改,若不需要同时使用tomcat6和tomcat8,则不需要更改端口。

        打开http://localhost:8088,若出现Tomcat界面,说明安装成功。接下来可以部署项目了。

        3.部署项目问题
         按照正常步骤将项目拷贝到webapps目录下,注意项目中配置文件的地址端口要由8080更改到8088(若安装过程中Tomcat8端口未更改则不用更改,自己注意就好),然后我就正常访问项目地址,结果悲剧了,报错404,我们知道404是项目路径出错的问题。然后我打开Tomcat Manager,发现项目根本没有被启动,如下图所示(打码的都是项目名字,不影响阅读):


        然后去百度出错的原因,结果全是没用的,Google上说的倒是很细致,但是并不能解决我的问题,Google到的是解决no TLDs的问题,然后赶紧看下Tomcat中的log日志,日志如下:


        初步断定系统找不到文件,但是项目在Tomcat6上运行时正常的,不可能出现项目文件配置的问题,所以我断定应该是jar包版本不兼容的问题,只好一个一个排查。

        系统所使用的是ssh框架,所以第一步先从spring的jar包版本入手了,发现使用的是spring3.1,查了一下Tomcat8兼容spring4.0以上版本(Tomcat7也不兼容spring3.1),只好换jar包,尝试了spring4.1和spring4.3,都是可以使用的。替换哪些jar包,主要看项目中使用到哪些了,也有的jar包被淘汰或被嵌入到别的jar包中了,更换完jar包后,要重启Tomcat8,发现项目可以正常发布并访问了。所幸只是Spring版本不兼容,没遇到需要更改代码的问题,更换版本可以直接解决。遇到别的问题也不要急,升级Tomcat其实也不难,遇到问题缕清思路,看看是Tomcat的问题还是项目代码的问题,然后再一个一个解决。

        之后我又尝试将Tomcat版本换到7,过程也是一样的,尤其注意jar包兼容性的问题。

        4.部署过程中遇到的另一个不小心造成的问题
        在更改配置文件时不小心删掉了半个<Licence></Licence>标签,导致空指针异常,如下图:


        其实看到了这个问题是吓到了我的,因为一看空指针异常,我的第一印象是代码问题,不是我害怕改代码,是项目代码比较久远,加上我手头并没有源码。仔细看了一下看到Config就想到配置文件的问题,仔细检查了配置文件,才发现之前手抖删掉了半个标签。

        有问题大家多留言交流。谢谢阅读,欢迎留言。
————————————————
版权声明:本文为CSDN博主「knqi007」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/knqi007/article/details/76259572

原文地址:https://www.cnblogs.com/kebibuluan/p/14608711.html