jdk1.6和tomcat6的老项目,升级jkd1.8和tomcat9,遇到的问题和解决办法

任务: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的版本对应关系如下:

jdk1.6和tomcat6的老项目,升级jkd1.8和tomcat9,遇到的问题和解决办法_第1张图片

 

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文件夹下,问题解决。

你可能感兴趣的:(web开发)