任务:jdk1.6和tomcat6的老项目,升级jkd1.8和tomcat9
首先,把相应的jar包,比如hadoop,hbase,htrace(如果用到了hadoop和hbase的jar包,就直接去linux的hbase集群环境,把hbase路径下的lib文件夹下的所有jar包,拷贝到这里的项目里面来)以及jdk和tomcat配置,全部更新一遍,
1. 版本冲突,需要换jar包
报错:javax.servlet.http.HttpServletRequest.getPart(Ljava/lang/String;)
其实就是server-api.jar包的版本太低,换成高版本的javax.servlet-api-4.0.0.jar,
之前的jsp-api-2.1-6.1.14.jar,也换成高版本的javax.servlet.jsp-api-2.3.0.jar,问题解决。
tomcat、jdk、server-api的版本对应关系如下:
2. tld文件找不到的问题
(1)问题描述
报错:
SEVERE: Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: Invalid tld file: "/WEB-INF/tags/xxxx.tld", see JSP 2.2 specification section 7.3.1 for more details
,也就是说 之前项目WEB-INF目录下的tld文件找不到的意思。
(2)解决问题
查看tomcat解压包 apache-tomcat-9.0.12\webapps\examples\WEB-INF\jsp2路径下的example文件 jsp2-example-taglib.tld,也就是新的高版本tomcat自带的example,我们可以发现规范应该是什么样的。发现tld文件的路径不能是tags文件夹路径下面了,而是jsp2文件夹下面,所以在WEB-INF路径下,新建文件夹jsp2,然后将之前的tld文件,挪到jsp2文件夹下,问题解决。