使用SpringMVC搭建WEB项目时报错404的问题排查解决以及web.xml配置文件init-param行标红问题

news2024/10/27 9:37:38

一、使用SpringMVC搭建WEB项目时报错404的问题排查解决

        很早前(4年前)就把这个搭建过,但今天运行的时候就是报404错误,见文章: JAVA开发中SpringMVC框架的使用及常见的404问题原因以及SpringMVC框架基于注解的开发实例-CSDN博客文章浏览阅读352次,点赞6次,收藏17次。在项目执行的时候可能容易遇到404错误,如果代码上没有什么问题,错误可能出在使用tomcat运行的时候未把lib包放到tomcat下,导致tomcat运行时找不到jar包从而运行出错。另外上面在配置springMVC框架的时候需要指定contextConfigLocation上下文的配置文件地址,即SpringMVC集合spring时,spring需要用的配置文件,如上我们使用的springmvc-servlet.xml文件,此文件放在java源代码下的src/main/resources目录中。https://linge.blog.csdn.net/article/details/142846672        经过检查,基本的错误原因都可以完全排除,程序代码没有问题,WEB导入包也没有问题,静态资源过滤以及编译出来的 out 目录中的文件也都正常,但是就是报 404 错误,而且 Tomcat 页面就只是显示无法找到资源,也没有更编辑 的错误。

类型 状态报告

描述 源服务器未能找到目标资源的表示或者是不愿公开一个已经存在的资源表示。

        认真看了看控制台的日志,发现有

org.springframework.web.servlet.DispatcherServlet 未分配到 javax.servlet.Servlet,jakarta.servlet. 以及 org.apache.catalina.core.ApplicationContext.log 将servlet[springmvc]标记为不可用

        有网友反馈也有类似情况,包括 spring-webmvc 版本太高了,所以我这里把spring-mvc降级到 5.3.39 版本,但是问题依旧。还有Tomcat的版本过高,目前用的是10 版本,于是试着 针对 Tomcat 的版本也进行降降,就把 Tomcat10版本降到了 Tomcat9版本。

        发现  Tomcat 版本降级之后,发现现在页面的日志详细多了。看到了错误和其根本原因提示:

org.xml.sax.SAXParseException; lineNumber: 10; columnNumber: 55; cvc-complex-type.2.4.c: 通配符的匹配很全面, 但无法找到元素 'context:component-scan' 的声明。

        于是修改了 spring 配置中的声明问,解决了声明的问题之后又碰到了一个新的问题。

org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: file [D:\5.java\spring-anno\out\artifacts\spring_anno_Web_exploded\WEB-INF\classes\org\example\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:\5.java\spring-anno\out\artifacts\spring_anno_Web_exploded\WEB-INF\classes\org\example\controller\IndexController.class]; nested exception is java.lang.IllegalArgumentException: Unsupported class file major version 65

        此处异常的原因是  :jdk不匹配,需要替换jdk版本即可。目前IDE中的JDK版本是 21,Spring版本是 5.1,Spring Framework 5.3.x: JDK 8-17 (expected) 所以考虑把 Spring 升上去。之前为尝试解决问题把 Spring版本降低了实际未启作用。  于是修改成了 6.1.6 版本。之后便正常运行起来了 SpringMVC 项目。

二、SpringMVC项目中web.xml配置文件init-param行标红

        SpringMVC项目中web.xml配置文件init-param行标红,报错如下:cvc-complex-type.2.4.a: Invalid content was found starting with element 'init-param' 。

cvc-complex-type.2.4.a: Invalid content was found starting with element 'init-param'. One of '{"http://java.sun.com/xml/ns/javaee":description, "http://java.sun.com/xml/ns/javaee":display-name, "http://java.sun.com/xml/ns/javaee":icon, "http://java.sun.com/xml/ns/javaee":servlet-name}' is expected.

        错误原因原来竟是 init-param 的存放位置不对,可我没想到不对到这种程度,这种要求真是撤单啊。解决方法是要把  init-param 放在servlet里面,并且一定要放在 servlet-class 后面,中间隔行别的都不行,而我中间正是加了一行 load on startup  配置就导致这个错误。

<servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup> ### 这行不能写在此,要删除放下面的位置
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:springmvc-servlet.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet> 

        还是那句话,这个要求有点扯淡。

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

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

相关文章

Unity3d折叠Inspector中的变量

InspectorFoldoutGroup插件 [Pixeye.Unity.Foldout("【曲线图】")] public BrokenLineUpDownGraph aimStabilityGraph;[Pixeye.Unity.Foldout("【曲线图】")] public BrokenLineUpGraph aimDensityGraph;[Pixeye.Unity.Foldout("【曲线图】")] p…

libssh2编译部署详解

libssh2编译部署详解 一、准备工作二、编译libssh2方法一:使用Autotools构建方法二:使用CMake构建三、验证安装四、使用libssh2五、结论libssh2是一个用于实现SSH2协议的开源库,它支持建立安全的远程连接、传输文件等操作。本文将详细介绍如何在Linux系统下编译和部署libssh…

AI+视频监控:EasyCVR安防平台赋能火电制造行业的视频智能管理方案

随着信息技术的飞速发展和智能制造的深入推进&#xff0c;火电制造行业作为国民经济的重要组成部分&#xff0c;正面临着智能化转型的迫切需求。为了提升生产效率、保障设备安全、优化管理流程&#xff0c;火电制造企业迫切需要引入先进的视频监控与人工智能技术。EasyCVR安防监…

【Canvas与标牌】立入禁止标牌

【成图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>立入禁止Draft1</title><style type"text/css"&g…

计算机网络(以Linux讲解)

计算机网络 网络协议初识协议分层OSI七层模型TCP/IP五层模型--初识 网络中的地址管理IP地址MAC地址 网络传输基本流程网络编程套接字预备知识网络字节序socket编程UDP socketTCP socket地址转换函数Jsoncpp 进程间关系与守护进程进程组会话控制终端作业控制守护进程 网络命令TC…

MES系列-工单管理

MES系列-工单管理 MES系列文章目录 ISA-95制造业中企业和控制系统的集成的国际标准-(1) ISA-95制造业中企业和控制系统的集成的国际标准-(2) ISA-95制造业中企业和控制系统的集成的国际标准-(3) ISA-95制造业中企业和控制系统的集成的国际标准-(4) ISA-95制造业中企业和控制系…

【STM32单片机_(HAL库)】6-1【串口通信UART、USART】通信基础

并行通信和串行通信 全双工、半双工、单工通信 单工通信&#xff1a;数据只能沿一个方向传输 半双工通信&#xff1a;数据可以沿两个方向传输&#xff0c;但需要分时进行 全双工通信&#xff1a;数据可以同时进行双向传输同步通信与异步通信 同步通信&#xff1a; 异步通信 …

『网络游戏』摄像机跟随【31】客

创建脚本文件夹 创建脚本 编写代码&#xff1a;CameraCtrl.cs using UnityEngine; public class CameraCtrl : MonoBehaviour{float dis;float height;float speed;Transform target;Vector3 targetPos;void Awake(){Screen.SetResolution(2304, 1296, FullScreenMode.Windowe…

24/10/12算法笔记 VGG

VGG特点&#xff1a; 1.深度&#xff1a;非常深 2.卷积核采用3*3&#xff0c;使得网络能够捕捉到更细粒度的图像特征 3.全连接层&#xff1a;使用全连接层来分类 4.使用ReLU激活函数&#xff0c;有助于缓解梯度消失 5.在卷积层和池化层后&#xff0c;使用局部归一化&#…

自动驾驶系列—自动驾驶整体开放平台:如何加速无人驾驶技术的落地?

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…

AI金融攻防赛:金融场景凭证篡改检测(DataWhale组队学习)

引言 大家好&#xff0c;我是GISer Liu&#x1f601;&#xff0c;一名热爱AI技术的GIS开发者。本系列文章是我跟随DataWhale 2024年10月学习赛的AI金融攻防赛学习总结文档。本文主要讲解如何解决 金融场景凭证篡改检测的核心问题&#xff0c;以及解决思路和代码实现过程。希望…

vue3学习:数字时钟遇到的两个问题

在前端开发学习中&#xff0c;用JavaScript脚本写个数字时钟是很常见的案例&#xff0c;也没什么难度。今天有时间&#xff0c;于是就用Vue的方式来实现这个功能。原本以为是件非常容易的事&#xff0c;没想到却卡在两个问题上&#xff0c;一个问题通过别人的博文已经找到答案&…

JavaSE——集合4:LinkedList、ArrayList与LinkedList的选择

目录 一、LinkedList的全面说明 二、LinkedList的底层操作机制 (一)LinkedList添加结点源码 (二)LinkedList删除结点源码 三、LinkedList常用方法 四、ArrayList与LinkedList的选择 一、LinkedList的全面说明 LinkedList底层实现了双向链表和双端队列的特点可以添加任意…

设计模式之-策略模式配合枚举

1、定义枚举接收不同的参数使用不同的handler, 2、定义个handerl接口&#xff0c;统一方法处理&#xff0c;每个handler实现该接口 public interface IMethodHandler<T, R> {/*** 处理统一入口** param req*/R process(T req); } java3、定义一个简单工厂统一处理 Comp…

Centos7内核升级

案例分析Centos7内核升级 1. 规划节点 节点规划&#xff0c;见表1。 IP主机名节点10.24.2.5k8s-master-node1master节点、仓库节点 表1 节点规划 2. 基础准备 &#xff08;1&#xff09;删除官方yum源 [rootk8s-worker-node1 ~]# rm -rf /etc/yum.repos.d/*&#xff08;…

Redhat的yum源出错——如何将yum源换成阿里云Centos源

文章目录 引言1. 查看和删除已安装的yum包2. 查看系统的版本号3. 镜像文件下载4. 镜像文件安装5. 下载和安装repo文件6. 配置repo文件7. 更新软件包缓存8. 验证9. 问题问题1 参考文献 Linux RedHat更换阿里云yum源 Redhat8.0 yum install问题解决 阿里云镜像 引言 为什么redha…

有关vue路由的学习

导言 由于很久没碰前端了&#xff0c;碰到路由都不太会了。趁着后端对接来记录一下&#xff0c;就当复习。不过由于个人能力有限&#xff0c;这篇会偏向整个过程的实现逻辑&#xff0c;其中有很多具体的方法不会给来&#xff0c;有兴趣的可以去看一下源码~ 目的&#xff1a; …

智能驾驶|迈向智能出行未来,AI如何应用在自动驾驶?

自动驾驶通过人工智能&#xff08;AI&#xff09;、机器学习、传感器融合和实时数据处理&#xff0c;使车辆能够在无需人类干预的情况下自主驾驶。随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;与智能汽车的结合正在成为现代交通运输领域的热潮。无人驾驶…

数学建模算法与应用 第14章 综合评价与决策方法

目录 14.1 层次分析法&#xff08;AHP&#xff09; Matlab代码示例&#xff1a;层次分析法权重计算 14.2 模糊综合评价法 Matlab代码示例&#xff1a;模糊综合评价法 14.3 灰色关联分析法 Matlab代码示例&#xff1a;灰色关联分析 14.4 主成分分析法&#xff08;PCA&…

SAP HCM 并发后台作业,解决考勤评估慢问题

这几天遇到刷卡分离程序需要跑很长时间&#xff0c;严重影响后面的时间评估与推送SucessFactors的考勤异常信息&#xff0c;下图是刷卡分离程序耗时时间&#xff0c;16个小时 记得原来算几万员工工资的时候SAP提供一个标准的并发后台程序RPCS0000&#xff0c;就是核算几万人的工…