[Spring5.3.2] Servlet[springmvc]的Servlet.init()引发异常, 解析类文件失败

news2025/7/6 8:22:57

Spring / Spring MVC遇到问题

找了一本spring相关的教材,书上的代码拿过来就能运行,自己写就总报HTTP 500错误,反复检查没有任何一处写错,同一个错误卡了我三天,非常郁闷,今天终于解决了.特此记录.

问题表现:
在这里插入图片描述
图中提到的问题:
例外情况
javax.servlet.ServletException: Servlet[springmvc]的Servlet.init()引发异常
根本原因
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: file [D:\apache-tomcat-9.0.69\webapps\ch2_2\WEB-INF\classes\controller\IndexController.class]; nested exception is org.springframework.core.NestedIOException: ASM ClassReader failed to parse class file - probably due to a new Java class file version that isn’t supported yet: file [D:\apache-tomcat-9.0.69\webapps\ch2_2\WEB-INF\classes\controller\IndexController.class]; nested exception is java.lang.IllegalArgumentException: Unsupported class file major version 61
提到了无法解析这个类文件, 我看到这个类文件是存在的,后面提到了不支持类文件的主版本61, 61对应的是jdk17
在这里插入图片描述
此工程使用的spring版本是5.3.2, 教材的开发环境是eclipse自带的java 15; 而我此次运行的jdk版本是新版本eclipse自带的java 17, 我把compliance level改成15再次运行也不好使.

那么问题来了:

我用java 17, 运行教材的现有工程代码, 可以正常运行; 而自己创建一个工程, 代码和配置文件都相同,就是会出现http500的错误. 进行了各种奇怪的尝试, 换jar包,改build path, 文件夹重命名, 改class输出路径,就是不好使

后来发现问题原因:

工程所使用的jre和compliance level不是最重要的,可以用java的新版本,两者保持版本一致就可以
最重要的是修改"工程属性"的这一项:
在这里插入图片描述
工程属性->project facets->java 选15, 对应教材指定的版本即可, 后来发现我改到16都是可以的,就17不行, 应该是跟spring的版本有关.

浪费了三天时间,哭唧唧

参考链接:https://www.likecs.com/show-203493527.html#sc=344.4444274902344

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/75204.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

编码规约学习要点

工程结构应用分层 日志规约 编程规约 > 其它 【强制】日期格式化时,传入 pattern 中表示年份统一使用小写的 y。 说明:日期格式化时,yyyy 表示当天所在的年,而大写的 YYYY 代表是 week in which year(JDK7 之后引…

第二证券|热门板块再次爆发,早盘主力抢筹超10亿元!

抗原检测、房地产概念股团体冲高,板块热度居高不下。 抗原检测概念股团体上涨 12月9日早盘,新冠抗原检测概念股团体上涨,概念指数涨4.74%,明德生物涨停,九安医疗、万孚生物、热景生物涨幅居前,分别上涨8.4…

【Window环境下使用MSYS2搭建CMake + MinGW环境】

目录标题安装CMakecmake 测试MSYS2下载MSYS2安装MSYS2修改软件下载源MSYS2下安装MinGW配置MinGW配置到环境变量hello world测试安装CMake Cmake下载地址:https://cmake.org/download/,下一个windows压缩包就好了,因为我比较喜欢自己来配置,免得不知道安…

嵌入式软件开发知识点总结-uboot文件系统

【推荐阅读】 浅析linux 系统进程冻结(freezing of task) 30分钟了解linux操作系统内核总结 深入linux内核架构--进程&线程 需要多久才能看完linux内核源码? 概述Linux内核驱动之GPIO子系统API接口 Uboot 什么是bootloader? …

Linux操作系统~进程崩溃的原理是什么?信号的产生方式有哪些?

目录 1.信号的概念 2.signal函数的使用 kill -l 自定义信号处理函数signal函数 3.进程异常/崩溃的原理 (1).进程为什么会崩溃? (2).如何知道进程崩溃/异常的原因 (3).core dump的作用—…

C++类设计和实现的十大最佳实践

C代码提供了足够的灵活性,因此对于大部分工程师来说都很难把握。本文介绍了写好C代码需要遵循的10个最佳实践,并在最后提供了一个工具可以帮助我们分析C代码的健壮度。原文:10 Best practices to design and implement a C class 1. 尽可能尝…

Word处理控件Aspose.Words功能演示:使用 C# 将 Word 文档转换为 HTML

在各种情况下,您需要在 Web 或桌面应用程序中显示 Word 文档的内容。在这种情况下,合适的选项之一是将 Word 文档转换为HTML。为了在 .NET 应用程序中实现这一点,本文介绍了如何使用 C# 将 Word DOCX或DOC文件转换为 HTML。此外,您…

搅拌釜反应器全自动真空压力(正负压)控制解决方案

摘要:针对双层玻璃反应釜中存在的无法进行真空压力自动和准确控制等问题,本文提出了完整和成熟的解决方案,即采用卫生级电动调节阀和高精度双通道PID控制器,结合不同量程的真空计,与反应器、真空泵和正压气源构成闭环控…

ARP协议与ARP欺骗

一、ARP协议(地址解析协议) 所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程,ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。 将一个已知的IP地址解析为MAC…

169. 基于Django-RESTFramework的节流的使用

1.节流概述 节流又称限流,限制访问。 就是一个用户多次发送一个请求(页面或者链接)的时候,单位时间允许访问次数限制,超过限制就会出现访问受限,提示譬如:离下一场访问还有多久之类等的字样。 …

基于SSM的学生考勤管理系统的设计与实现

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问…

【学习笔记】顺序容器的表格方式总结 C++

目录顺序容器及其特点顺序容器操作向顺序容器添加元素insertemplace参考更新中… 顺序容器及其特点 名字访问元素插入,删除元素vector(可变大小数组)支持快速随机访问在尾部之外的位置插入或删除元素可能很慢deque(双端队列&…

SpringBoot实战:整合MapStruct实现数据类型转化

MapStruct 是一个代码生成器,它基于约定优于配置方法极大地简化了 Java bean 类型之间映射的实现。自动生成的映射转换代码只使用简单的方法调用,因此速度快、类型安全而且易于理解阅读;本篇就是实现 SpringBoot 整合 MapStruct 实现数据类型…

[附源码]JAVA毕业设计小区物业管理系统演示录像2020(系统+LW)

[附源码]JAVA毕业设计小区物业管理系统演示录像2020(系统LW) 项目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09…

ffmpeg库安装及入门指南(Windows篇)- 2022年底钜献

最近项目需要,使用了 ffmpeg 做摄像头视频采集和串流。这几天有点时间,打算把相关的一些知识记录分享一下。 在撰写本文时,我又在另外一台电脑上把 ffmpeg 重新安装了一遍,所以绝对真实靠谱!如果你觉得文章写得还不错…

代码效果测试

ROBUST TEXT DETECTION IN NATURAL IMAGES WITH EDGE ENHANCED MAXIMALLY STABLE EXTREMAL REGIONS 代码地址:https://github.com/akab/TextDetection 基本步骤: 1)将原图转为灰度图; 2)使用OpenCV的canny函数进行边…

HTML -- 常用标签及示例总结

文章目录HTML常用标签1 标签语义1.1 标签属性2 标题标签 h1 - h63 段落和换行标签3.1 段落标签3.2 换行标签4 文本格式化标签5 div和span6 图像标签7 超链接标签7.1 链接的语法格式7.2 链接分类8 表格标签8.1 表格的主要作用8.2 表格的基本语法8.3 表头单元格标签8.4 表格属性8…

C语言随机数的产生(rand、srand、time函数细节讲解)

✨C语言随机数的产生随机数生成代码&#xff1a;rand函数&#xff1a;srand函数&#xff1a;time函数&#xff1a;time函数补充:time_t类型讨论time_t指针传入的讨论&#xff1a;随机数生成代码&#xff1a; 先上代码&#xff0c;再详细解释&#xff1a; #include<stdio.h…

Python数组数据处理办法清单

import numpy as np import pandas as pd import matplotlib.pyplot as plt#matplotlib 的字体&#xff08;font&#xff09;为黑体&#xff08;SimHei&#xff09; plt.rcParams[font.sans-serif] [SimHei, ] # matplotlib正确显示正负号 plt.rcParams[axes.unicode_minus] …

dfs序(树形结构线性化)

dfs序是将树形结构转换为线性结构的一种方式。 dfs序 dfs序&#xff1a; 指每个节点在dfs深度优先遍历中的进出栈的时间序列。 定义三个数组&#xff1a; in[x]&#xff1a;表示结点x 入栈的时间戳。 out[x]&#xff1a;表示结点x出栈的时间戳&#xff0c;特殊的&#xff0c;出…