解決Jsp運行org.apache.jasper.JasperException: Unable to compile class for JSP:問題


初學Maven就遇到困難了!!!在b站跟着視頻開始接觸maven來創建一個webapp項目,在jsp跳轉的時候遇到一個bug,身邊也沒大佬帶,只能自己慢慢摸索,在Maven項目中出現了報org.apache.jasper.JasperException: Unable to compile class for JSP:的問題,在網上查了很多方法來嘗試解決,但天資愚鈍無法理解大佬的跳轉思維,后面某論壇看到解決放方案。

鏈接:https://blog.csdn.net/u011781521/article/details/53713162

一、問題描述

 

eclipse通過maven插件創建一個WEB項目通過內嵌Tomcat加載項目,啟動沒問題,一訪問頁面就報錯提示無法將jsp編譯為class文件:

 

org.apache.jasper.JasperException: Unable to compile class for JSP:

An error occurred at line: 1 in the generated java file
The type java.io.ObjectInputStream cannot be resolved. It is indirectly referenced from required .class files

Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:349)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:327)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:314)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

 

 

錯誤的原因為:tomcat6不支持jdk1.8版本

 

我pom.xml文件里明明配置的是Tomcat7啊!!  怎么是tomcat6運行去了。。。

 

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 
 3 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 5   <modelVersion>4.0.0</modelVersion>
 6 
 7   <groupId>com.itheima</groupId>
 8   <artifactId>maven_java</artifactId>
 9   <version>1.0-SNAPSHOT</version>
10   <packaging>war</packaging>
11 
12   <name>maven_java Maven Webapp</name>
13   <!-- FIXME change it to the project's website -->
14   <url>http://www.example.com</url>
15 
16   <properties>
17     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
18     <maven.compiler.source>1.7</maven.compiler.source>
19     <maven.compiler.target>1.7</maven.compiler.target>
20   </properties>
21 
22   <dependencies>
23     <dependency>
24       <groupId>junit</groupId>
25       <artifactId>junit</artifactId>
26       <version>4.11</version>
27       <scope>test</scope>
28     </dependency>
29 
30     <dependency>
31       <groupId>javax.servlet</groupId>
32       <artifactId>servlet-api</artifactId>
33       <version>2.5</version>
34       <scope>provided</scope>
35     </dependency>
36 
37     <!-- https://mvnrepository.com/artifact/javax.servlet.jsp/jsp-api -->
38     <dependency>
39       <groupId>javax.servlet.jsp</groupId>
40       <artifactId>jsp-api</artifactId>
41       <version>2.1</version>
42       <scope>provided</scope>
43     </dependency>
44 
45   </dependencies>
46 
47   <build>
48     <finalName>maven_java</finalName>
49     <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
50       <plugins>
51         <plugin>
52           <artifactId>maven-clean-plugin</artifactId>
53           <version>3.1.0</version>
54         </plugin>
55         <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
56         <plugin>
57           <artifactId>maven-resources-plugin</artifactId>
58           <version>3.0.2</version>
59         </plugin>
60         <plugin>
61           <artifactId>maven-compiler-plugin</artifactId>
62           <version>3.8.0</version>
63         </plugin>
64         <plugin>
65           <artifactId>maven-surefire-plugin</artifactId>
66           <version>2.22.1</version>
67         </plugin>
68         <plugin>
69           <artifactId>maven-war-plugin</artifactId>
70           <version>3.2.2</version>
71         </plugin>
72         <plugin>
73           <artifactId>maven-install-plugin</artifactId>
74           <version>2.5.2</version>
75         </plugin>
76         <plugin>
77           <artifactId>maven-deploy-plugin</artifactId>
78           <version>2.8.2</version>
79         </plugin>
80         <plugin>
81           <groupId>org.apache.tomcat.maven</groupId>
82           <artifactId>tomcat7-maven-plugin</artifactId>
83           <version>2.2</version>
84         </plugin>
85       </plugins>
86     </pluginManagement>
87   </build>
88 </project>

 

 

注意: 如果你的版本是tomcat7-maven-plugin  2.0 的話,由於它不支持 jdk 1.8,所以把它換成 tomcat7-maven-plugin  2.2就行了。

 

二、解決方法

 

找了下發現原來是這里出了問題!!!

 

 

 

把它改為: tomcat7:run 就行了,就不會報錯了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM