解决maven 已经设置依赖servlet-api和jsp-api为provided,但是依旧报错Unable to compile class for JSP

相信很多童鞋在使用maven做项目时都会经历过依赖冲突的问题,最常见的莫过于servlet-api和jsp-api这个两个jar包版本库和容器冲突

报错提示如下:maven Unable to compile class for JSP: An error occurred at line: 1 in the generated java file The ....

解决方案一(傻逼方法,根本不科学):删除这两个jar包,很多网上方法这样说,execuse me?  逗我呢?本来就需要这个两个包,你还删除?先不管容器中是否提供,再说我都进行provided声明了,肯定不用删除这两个jar包

解决方案二:(下面写法仅供参考)

pom.xml对应的依赖配置如下

<dependency>
	<groupId>javax.servlet</groupId>
	<artifactId>servlet-api</artifactId>
	<version>2.5</version>
	<scope>provided</scope>
</dependency>
<dependency>
	<groupId>javax.servlet</groupId>
	<artifactId>jsp-api</artifactId>
	<version>2.0</version>
	<scope>provided</scope>
</dependency>

正常情况下这样都能解决了,但是估计还是会遇到这样配置了之后依旧没有解决的,还是依旧报错,这是因为tomcat6是eclipse默认的,而此时你的jdk恰巧确实jdk1.8,当然会报错,因为这个jdk1.8不支持tomcat6

这是配置一下tomcat插件为7版本

<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
	<artifactId>tomcat7-maven-plugin</artifactId>
	<version>2.2</version>
<!-- 下面属于自定义 -->
	<configuration>
	<port>8080</port>
	<path>/crm</path>
	<uriEncoding>UTF-8</uriEncoding>
	</configuration>
</plugin>

这是你去运行时输入的命令是这样的tomcat7:run  注意是tomcat7   而不是原来的tomcat而已,如下图

输入命令:

这个困惑了我好几天,网上百度一大堆没用的东西,幸好找到了一片文章提示了我,参考文章地址https://blog.csdn.net/u011781521/article/details/53713162

发布了74 篇原创文章 · 获赞 125 · 访问量 48万+

猜你喜欢

转载自blog.csdn.net/df981011512/article/details/81102977
今日推荐