Maven项目不能编译jsp解决方法:Unable to compile class for JSP
1、先交代开发环境:
JDK是1.8的,IDE是IDEA2018.2.2,web服务器是Tomcat 7.0,maven是3.6.1,搭建好环境后输入命令tomcat:run,然后就报org.apache.jasper.JasperException: Unable to compile class for JSP错误。
2、分析问题
(1)不能编译应该是没有导入servlet-api、jsp-api包的原因,然后就在pom文件中加上servlet-api、jsp-api包,为了防止包冲突,需要把改成provided。
<dependency>
2 <groupId>javax.servlet</groupId>
3 <artifactId>servlet-api</artifactId>
4 <version>2.5</version>
5 <scope>provided</scope>
6 </dependency>
7 <dependency>
8 <groupId>javax.servlet</groupId>
9 <artifactId>jsp-api</artifactId>
10 <version>2.0</version>
11 <scope>provided</scope>
12 </dependency>
加上之后还是不行,然后就开始找度娘……………………
(2)看了一篇解答才发现:
原来maven默认使用的是Tomcat6,而我使用的是JDK1.8,Tomcat6不能与JDK1.8一起使用。只要将Tomcat的版本调高就行了
1 <build>
2 <plugins>
3 <plugin>
4 <groupId>org.apache.maven.plugins</groupId>
5 <artifactId>maven-compiler-plugin</artifactId>
6 <version>3.1</version>
7 <configuration>
8 <source>1.8</source>
9 <target>1.8</target>
10 <encoding>utf-8</encoding>
11 </configuration>
12 </plugin>
13 <plugin>
14 <groupId>org.apache.tomcat.maven</groupId>
15 <artifactId>tomcat7-maven-plugin</artifactId>
16 <version>2.2</version>
17 </plugin>
18 </plugins>
19 </build>
然后将maven命令改为Tomcat7:run就行了。