关于此报错的几种原因:
- jar冲突,看一下项目引用的jar:servlet-api和jsp-api以及jasper.jar等jar,是不是在项目lib目录下,如果有并且和tomcat的lib目录下的jar版本不一致,那么有可能会导致这个错误。删除lib下相应的jar即可解决。 根绝servlet规范,servlet-api和jsp-api这些jar是不允许出现在项目引用jar中的。maven依赖时,scop请使用provided。
- 真的缺少jar包。
- 导致这个报错还有一个原因:jsp代码写的有问题,今天就遇到了:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
/**重复引入*/
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<body>
this is my index page!!!
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
上面的代码就会报错,就是今天刚遇到的。改成如下就可以解决问题:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<body>
this is my index page!!!
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
转载请注明出处:http://blog.csdn.net/qq_26525215
本文源自【大学之旅_谙忆的博客】
今天建立Spring MVC骨架的时候,突然遇到这么一个问题~~
HTTP Status 500 - java.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.classes.views.index_jsp
type Exception report
message java.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.classes.views.index_jsp
description The server encountered an internal error that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.classes.views.index_jsp
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:177)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:168)
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303)
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1244)
org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1027)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:971)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
当时挺懵逼的,以为是少了哪个类,以为是Servlet类或者是jsp的类少了,结果发现jar包都有啊,没少。
而且应该是不需要的啊,Tomcact带着有的啊。
后来经过搜索,有很多说是jar包起冲突了:
有一定道理,然后我将包移出
问题还是存在~
经过一番摸索,搜索之后,问题都没有解决。
然后我看到我的JDK用的是1.8,我想,不会是这个的问题吧。
在开始建Maven项目的时候我选择 的是1.8:
因为我另外一个SpringMVC项目用的是1.7的,没有问题,配置什么的都和这个差不多,可是今天搭建SpringMVC的骨架的时候就出问题了。
然后我去改JDK,
注意,我还需要修改pom.xml中的java版本。需要一致!
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
需要修改java.version这个的值。
修改完成后:
运行。就可以了!
Spring MVC的骨架源码,也是这个出问题的源码,现在已经被调试好了,但是如果你将JDK换成1.8的(注意同时修改pom.xml中的java版本),应该还会出现那个问题。
本篇博客涉及到的源码链接:
【->点击访问源码-©CHX】
至于为什么换了1.7版本的JDK之后就可以运行了,而换成1.8的JDK却不可以。暂不明白原因!
望知道的在评论区指点一二,谢谢。
本文章由[谙忆]编写, 所有权利保留。
欢迎转载,分享是进步的源泉。
转载请注明出处:http://blog.csdn.net/qq_26525215
本文源自【大学之旅_谙忆的博客】