maven 项目配置使用 JDK8 以及 tomcat@8.5.58, 插件使用 tomcat7-maven-plugin。启动时报以下错误:
严重: Servlet.service() for servlet [jsp] in context with path [] threw exception [java.lang.NullPointerException] with root cause
java.lang.NullPointerException
at org.apache.jsp.index_jsp._jspInit(index_jsp.java:31)
...
查找资料后发现是 jar 包冲突了。
servlet-api 和 jsp-api 两个包和我本地安装的 tomcat 服务器包冲突了。因为pom.xml 文件中这两个 jar 包的依赖我原来是这样写的:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
</dependency>
jsp-api 的配置中忘了写 <scope>,补上后,不再报错。
还有一些 jar 包,由于最新版本使用了一些新的技术,要求使用较新的 jdk 或者 tomcat 版本才行。这种情况只要将 jar 包版本回退就行,不要使用最新的版本。

在使用maven项目配置JDK8和Tomcat8.5.58,以及tomcat7-maven-plugin插件时,遇到启动报错。问题源于servlet-api和jsp-api jar包与本地Tomcat服务器的冲突。通过在pom.xml中正确配置jsp-api的exclusions,解决了冲突。此外,某些jar包因依赖新版本的JDK或Tomcat,回退这些jar包到兼容版本可以避免错误。
2078

被折叠的 条评论
为什么被折叠?



