Maven项⽬不能编译jsp解决⽅法:UnabletocompileclassforJSP ⼀、问题描述:
先交代开发环境,JDK是1.8的,IDE是eclipse 4.7,web服务器是Tomcat 9.0,maven是3.5.0,搭建好环境后输⼊命令tomcat:run,然后就报org.apache.jasper.JasperException: Unable to compile class for JSP错误。
⼆、分析问题:
(1)不能编译应该是没有导⼊servlet-api、jsp-api包的原因,然后就在pom⽂件中加上servlet-api、jsp-api包,为了防⽌包冲突,需要把
<scope>改成provided。
1<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)eclipse默认⽤的是⾃带的jre,需要我们⾃⼰改成下载好的JDK,在Window->Preference->Java->Installed JREs中添加⾃⼰下载的JDK并删除eclipse⾃带的jre。如图:
jsp编译过程
运⾏之后还是不⾏,之后百度的⼤部分都是类似的解决⽅案,全部都不⾏,只好⾃⼰慢慢探索,从项⽬搭建到运⾏仔细检查⼀遍,终于发现问题。
原来maven默认使⽤的是Tomcat6,⽽我使⽤的是JDK1.8,Tomcat6不能与JDK1.8⼀起使⽤。只要将Tomcat的版本调⾼就⾏了。
(3)使⽤maven的Tomcat7插件:在pom⽂件中加上⼀下代码即可:
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>at.maven</groupId>
15<artifactId>tomcat7-maven-plugin</artifactId>
16<version>2.2</version>
17</plugin>
18</plugins>
19</build>
然后将maven命令改为Tomcat7:run就⾏了。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。