【已解决】org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.index_jsp

错误信息很明确,就是没有找到index_jsp这个class文件。Jsp本质上就是一个servlet,也就是一个java类,tomcat通过运行编译好的class文件来显示jsp页面,而翻译jsp文件为java文件的引擎也就是tomcat的jasper。但是我的tomcat内部是没有缺少这部分jar包内容的。于是便有了我的第一次尝试。观察是不是jar包冲突了。因为项目本身引入了servlet-api、jsp-api包可能会和tomcat自带的包冲突,当然不排除也可能是其他包冲突。利用mavenhe

大家好,又见面了,我是你们的朋友全栈君。

错误信息很明确,就是没有找到index_jsp这个class文件。
Jsp本质上就是一个servlet,也就是一个java类,tomcat通过运行编译好的class文件来显示jsp页面,而翻译jsp文件为java文件的引擎也就是tomcat的jasper。但是我的tomcat内部是没有缺少这部分jar包内容的。
于是便有了我的第一次尝试。

观察是不是jar包冲突了。

因为项目本身引入了servlet-api、jsp-api包可能会和tomcat自带的包冲突,当然不排除也可能是其他包冲突。利用maven helper插件,检查项目的pom文件发现并没有什么jar包冲突。

如何使用maven helper

  • 打开项目的pom.xml文件。
  • 在左下角点击Dependency Analyzer。
    在这里插入图片描述
  • 选择conflicts即可查看项目是否存在jar包冲突。
    在这里插入图片描述

第二次尝试

跑到myeclipse重新部署了一遍这个项目的环境,发现报了个新错。
在这里插入图片描述
没有错,就是没有找到jstl这个包,发现tomcat9.0真的lib内没有带这个包,然后把pom里面jstl包的scope属性改成compile,问题解决,舒服了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/125900.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • simhash是什么_批复的适用情况

    simhash是什么_批复的适用情况需求是这样的:给出一个文档集合,以及一个领域概念集合,要求根据这些领域概念计算文档的相似性。首先想到的是利用余弦相似性计算。起初得到的集合有大概几万篇文档,如果对每对文档进行余弦相似度计算,会导致时间复杂度较高,于是发现了Simhash方法。由于已经给出了用于计算哈希值的关键词(即这些领域概念),就省去了对文章进行分词的步骤。每篇文档都用其领域概念列表计算出文档的哈希值,并使用这些

    2022年10月1日
    2
  • useGeneratedKeys和keyProperty

    useGeneratedKeys和keyProperty<!–useGeneratedKeys:仅适用于insert和update)这会令MyBatis使用JDBC的getGeneratedKeys方法来取出由数据库内部生成的主键(比如:像MySQL和SQLServer这样的关系型数据库管理系统的自动递增字段),默认值:false。说白了就是使用自增主键,增加的时候自动使用自增主键–><!–keyProperty:使用主键自增之后,就无法拿到主键,但是需要使

    2022年6月20日
    29
  • org.json.JSONObject对象转json,json新增元素,根据json的key获取值。以及list对象格式字符串转jsonArray

    org.json.JSONObject对象转json,json新增元素,根据json的key获取值。以及list对象格式字符串转jsonArray

    2021年7月19日
    191
  • hibernate二级缓存策略

    hibernate二级缓存策略ibernate二级缓存策略2008-08-0111:00相关文章:关于HibernateCache数据库对象的缓存策略Spring+Hibernate缓存不起作用推荐圈子:JBPM@net更多相关推荐很多人对二级缓存都不太了解,或者是有错误的认识,我一直想写一篇文章介绍一下hibernate的二级缓存的,今天终于忍不住了。我的经验主要来自hi

    2022年5月23日
    31
  • RabbitMQ默认端口

    4369:epmd,RabbitMQ节点和CLI工具使用的对等发现服务5672、5671:由不带TLS和带TLS的AMQP0-9-1和1.0客户端使用25672:用于节点间和CLI工具通信(Erlang分发服务器端口),并从动态范围分配(默认情况下限制为单个端口,计算为AMQP端口+20000)。除非确实需要这些端口上的外部连接(例如,群集使用联合身份验证或在子网外部的计算机上使用CLI工具),否则这些端口不应公开。有关详细信息,请参见网络指南。35672-35682:由CLI工具..

    2022年4月5日
    161
  • 【深入Java虚拟机】之二:Class类文件结构「建议收藏」

    【深入Java虚拟机】之二:Class类文件结构「建议收藏」Java是与平台无关的语言,这得益于Java源代码编译后生成的存储字节码的文件,即Class文件,以及Java虚拟机的实现。不仅使用Java编译器可以把Java代码编译成存储字节码的Class文件,使用JRuby等其他语言的编译器也可以把程序代码编译成Class文件,虚拟机并不关心Class的来源是什么语言,只要它符合一定的结构,就可以在Java中运行。Java语言中的各种变量、关键字和运算符的语义最终都是由多条字节码命令组合而成的,因此字节码命令所能提供的语义描述能力肯定会比Java语言本身更强大,这便为

    2022年5月5日
    40

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号