Maven项目不能编译jsp解决方法:Unable to compile class for JSP

一、问题描述:

先交代开发环境,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。如图:

运行之后还是不行,之后百度的大部分都是类似的解决方案,全部都不行,只好自己慢慢探索,从项目搭建到运行仔细检查一遍,终于发现问题。

原来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>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就行了。

原文地址:https://www.cnblogs.com/bk-jin/p/maven.html

时间: 2024-08-28 17:31:42

Maven项目不能编译jsp解决方法:Unable to compile class for JSP的相关文章

VS编译duilib项目时候的错误解决方法整理

@1:找不到Riched20.lib 用everything等软件搜索下磁盘,找到所在的目录添加到vs的库目录即可,我得是C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib:其他的vs版本可能不一样,自行搜索 @2: "IDispatchEx": 重定义:不同的基类型 点击打开链接 UIFlash.h行: #import "..\Utils/Flash11.tlb" raw_interfaces_only,

解决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/arti

JAVA Drp项目实战—— Unable to compile class for JSP 一波三折

交代下背景,电脑系统是64位的,用的是64位的Tomcat,安装是32位的Myeclipse10,java环境也是32位的,Tomcat在开始启动时会报这样一个错误,"Can't load IA 64-bit .dll on a AMD32-bit platform",但是不耽误使用,最近在敲Drp项目中用到了底层接口的几个方法,这个错误导致项目不能正常运行了,所以就将64位的Tomcat换成了与java环境一样的32位的Tomcat,上面的问题就顺利解决了,于是继续自己的开发,但是当

Unable to compile class for JSP 错误的解决过程。

刚配置好Tomcat.启动项目没问题.然后一访问就报错了. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 2012-8-18 19:17:40 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service() for servlet jsp threw exception org.apac

C编译错误解决方法

1.expected identifier before numeric constant 一般情况下是枚举类型中的某个变量已经被#define定义过一次了,在项目空间中搜索你枚举类型中的所有变量类型,看看是否被#define过,如果被#define过,就把#define的删除或换个名字. C编译错误解决方法,布布扣,bubuko.com

Eclipse项目红色叹号解决方法

情况:就是项目出现红色感叹号 解决方法: 对准项目右键选择Build Path → configure build path 点击eclipse项目的configure build path后,在弹出来的窗口中,找到Libraries页签,可以看到一些jar包是红色叉号的,这种jar包就是找不到对应文件的jar包,引起这种eclipse项目前面出现红色叹号.eclipse项目前面出现红色感叹号.eclipse项目前面出现红色惊叹号.eclipse工程前面出现红色叹号的项目,可能是因为从外部导入的

构建maven项目,自定义目录结构方法

构建maven项目 创建自定义的文件目录方法: 在项目名称右键-->Builder Path-->Configure Builder Path...Source菜单下的Add Folder按钮 不用勾选选框,直接选中要创建的目录分支后,点击下面的Create New Folder按钮,写目标目录的名称,finish OK-->Apply --> Apply and close 原文地址:https://www.cnblogs.com/jasonma/p/11320454.html

【FAQ】HTTP Status 500 - Unable to compile class for JSP:&#39;***&#39; cannot be resolved to a type

1.问题现象 2.解决方法 原因分析:cannot be resolved to a type 基本上是该类没有被识别出来,编译的时候,编译路径下没有该类对应的库文件, 可以通过下面几步解决: 1.拷贝类对应的jar到tomcat lib目录下:C:\Program Files\Java\apache-tomcat-8.0.9\lib 1.关闭tomcat服务器:执行bat文件 C:\Program Files\Java\apache-tomcat-8.0.9\bin\shutdown.bat

HTTP Status 500 - Unable to compile class for JSP:Syntax error on token &quot;=&quot;, @ expected

jsp页面中使用<% = com.xunge.base.constant.PlatInfo.title %>取静态字段的值,报HTTP Status 500 - Unable to compile class for JSP:Syntax error on token "=", @ expected错误. 详细错误信息如下: 在网上搜索了很久也没找到解决方法,后来发现是因为"<% ="百分号和等号之间多了一个空格的原因,去掉就OK了.