tomcat7:run 启动报错解决方式

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

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 包版本回退就行,不要使用最新的版本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值