URL路径以及Tomcat本身引入的jar包会导致的 SpringMVC项目 404问题、Tomcat调试日志的开启及总结

一、URL路径导致的 SpringMVC项目 404问题

        SpringMVC项目的各项代码都没有问题,但是在页面请求时仍然显示404,编译的时候报了下面的问题:

org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。
14-Oct-2024 17:53:55.932 信息 [RMI TCP Connection(2)-127.0.0.1]

        但实际上面的问题并不致命,只要能打开浏览器,说明JAVA代码编译成功,后面页面404的问题就有其它原因。我后来在排查的过程中发现是页面的URL问题,SpringMVC 默认的请求URL都是带项目名称的,如下图 URL 部分,我习惯设置的时候把这个URL部分时的项目名称删掉,导致了404错误。

        这里建议不用改,要改的话就不能光在这个地方修改,那里就会出错。改这里之前需要先修改请求路径的规则,有两种方法:

        一是进行Tomcat配置修改,在HOST配置里操作,不建议这样处理,麻烦。

        二就是在Tomcat 配置里修改,如下图,在运行Tomcat的时候注意左上角 Tomca 的图标是不是有一个叉号,如果有说明 Tomca 未正常配置,需要点击一下修复进行处理。实际也就是下面这个图的编辑界面。在应用程序上下文处配置请求的URL前缀,也就是设置带不带项目名或者你自定义一个前缀路径,这样上面配置的请求地址与下面的前缀一样才能正确。

        建议直接用默认的就行,路径上增加项目名称也方便多项目调试进行区分,这样的话 URL上基本就不会导致问题。 

 

二、Tomcat本身引入的jar包导致404问题及Tomcat调试日志开启

1. Tomcat本身引入的jar包导致404问题

        如下图,Tomcat 库栏中我并没有做任何操作。但发现我的 Tomcat9 和 Tomcat10 是有区别的,因此编译的时候可能会导致问题。我后来直接就只使用 Tomcat 10了,毕竟目前不需要去适配和调试各个版本的 Tomcat,太高版本的Tomcat也更容易引起问题,暂时就主要使用 Tomcat9吧。

2. 关于启用Tomcat调试日志记录的开启:

        开发中很有必要启用 Tomcat 调试日志记录,以便在终端能直观地查看Tomcat的错误。通过在 Tomcat 的 logging.properties 文件中启用相关记录器的调试级别,你可以获取有关已扫描但未在其中找到TLD的更多信息。有助于你更好地了解问题的根本原因。

        修改位置:Tomcat 配置目录conf下的 logging.properties 文件,找到如下行,把注释去掉即可。这样Tomcat将启用 TldScanner 的详细日志记录,查看Tomcat的日志文件可以获取更多信息。 

org.apache.jasper.servlet.TldScanner.level = FINE

三、SpringMVC 项目搭建过程的整体总结

        目前通过这几篇文章,一是两各种方式实现的SpringMVC项目过程,链接如下:

JAVA开发中SpringMVC框架的使用及常见的404问题原因以及SpringMVC框架基于注解的开发实例-CSDN博客文章浏览阅读513次,点赞11次,收藏25次。在项目执行的时候可能容易遇到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.xml 配置)如下一:使用SpringMVC搭建WEB项目时报错404的问题排查解决以及web.xml配置文件init-param行标红问题-CSDN博客文章浏览阅读508次,点赞10次,收藏13次。还有Tomcat的版本过高,目前用的是10 版本,于是试着 针对 Tomcat 的版本也进行降降,就把 Tomcat10版本降到了 Tomcat9版本。经过检查,基本的错误原因都可以完全排除,程序代码没有问题,WEB导入包也没有问题,静态资源过滤以及编译出来的 out 目录中的文件也都正常,但是就是报 404 错误,而且 Tomcat 页面就只是显示无法找到资源,也没有更编辑 的错误。于是修改了 spring 配置中的声明问,解决了声明的问题之后又碰到了一个新的问题。认真看了看控制台的日志,发现有。https://linge.blog.csdn.net/article/details/142884626

        如下二(程序中标红的问题):

SpringMVC开发web.servlet.DispatcherServlet、控制器类 implements Controller标红及maven.plugins:maven-site..标红问题-CSDN博客文章浏览阅读323次,点赞9次,收藏12次。在配置SpringMVC项目时,org.springframework.web.servlet.DispatcherServlet 标红显示:org.springframework.web.servlet.DispatcherServlet' 未分配到'javax.servlet.Servlet,jakarta.servlet.程序都能运行,但是org.springframework.web.servlet.DispatcherServlet 依然标红。虽然我的程序是能正常运行的。https://linge.blog.csdn.net/article/details/142894627         以及编译中的问题和最后记录的一个完整的项目代码示例如下:

找到多个名为[spring_web]的片段、TldScanner.scanJars至少有一个JAR被扫描问题..以及一个SpringMVC项目运行起来的完整配置和代码示例程序-CSDN博客文章浏览阅读295次,点赞12次,收藏8次。找到多个名为[spring_web]的片段、TldScanner.scanJars至少有一个JAR被扫描问题..以及一个SpringMVC项目运行起来的完整配置和代码示例程序。这里如果在调试的时候视图出错,可以不用视图加载,直接使用RestController 返回内容即可。https://linge.blog.csdn.net/article/details/142915607        就基本能排除 SpringMVC 项目搭建过程中的各种问题。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Windows下搭建VUE开发环境

Windows下搭建VUE开发环境 文章目录 Windows下搭建VUE开发环境第一步 安装nodejs下载nodejs安装nodejs配置环境变量安装测试配置npm的路径配置npm的国内代理安装必要工具测试工具安装的使用 第二步 安装vscode下载vscode安装插件Chinese (Simplified) (简体中文) Language Pack…

从0到1构建Next.Js项目SSG和SSR应用

最近在探索学习前端工程化相关内容,在如今前后端分离的架构下,为了提升首屏渲染速度和 SEO 效果,兜兜转转,又回到了服务端渲染。 本文主要是讲讲如何使用 Next.js 框架实现服务端渲染,重构或优化现有前端应用的 SEO 和…

光伏工程造价单自动生成

光伏工程造价单依据光伏设计图自动生成。 一、组件 类型:光伏组件是光伏电站的核心设备,负责将太阳能转化为电能。常见的类型包括单晶硅组件、多晶硅组件、薄膜组件等。 规格型号:具体规格型号取决于电站的设计需求,例如功率、…

企业博客SEO优化:8个必备工具与资源指南

在当今数字化时代,企业博客已远远超越了传统意义上的信息展示平台。它不仅是企业展示品牌形象、传递品牌价值的重要窗口,更是吸引潜在客户、增强用户粘性、提升网站流量和搜索引擎排名的关键。通过精心策划和高质量的内容创作,企业博客能够建…

【OpenGL】创建窗口/绘制图形

需要云服务器等云产品来学习Linux可以移步/-->腾讯云<--/官网&#xff0c;轻量型云服务器低至112元/年&#xff0c;新用户首次下单享超低折扣。 目录 一、创建窗口 1、代码流程图 2、运行结果 3、代码 二、三角形 1、顶点缓冲对象&#xff1a;Vertex Buffer Object…

【Qt】控件——Qt控件的介绍、QWidget的介绍、QWidget的属性、QWidget的函数

文章目录 Qt1. 控件的概念2. QWidgetenabledgeometrywindowTitlewindowIconwindowOpacitycursorfonttoolTiptoolTipDuringstyleSheet Qt 1. 控件的概念 Widget 是 Qt 中的核心概念。英文原义是 “小部件”&#xff0c;我们此处也把它翻译为 “控件”。控件是构成一个图形化界面…

吴恩达深度学习笔记(7)

误差分析&#xff1a; 你运行一个算法代替人类计算&#xff0c;但是没有达到人类的效果&#xff0c;需要手动检查算法中的错误&#xff0c;对模型的一些部分做相应调整&#xff0c;才能更好地提升分类的精度。如果不加分析去做&#xff0c;可能几个月的努力对于提升精度并没有…

Linux文件你不知道的那些事,搞清楚磁盘空间占用的问题

在进行采集日志时&#xff0c;日志文件明明被滚动压缩并转移走了&#xff0c;但是发现磁盘空间还是在不断增长&#xff0c;统一目录下的总文件大小&#xff0c;发现与实际占用也不符&#xff0c;于是想到可能是文件句柄未释放导致的&#xff0c;本文就来记录一下文件及文件句柄…

git clone 国内镜像

比如 git clone https://github.com/HKUST-Aerial-Robotics/A-LOAM.git 改成 git clone https://gitclone.com/github.com/HKUST-Aerial-Robotics/A-LOAM.git

MySQL 查询按照更新时间排序遇到相同更新时间的会少数据

MySQL分页后出现重复数据或丢失记录的原因可能包括&#xff1a;SQL查询条件不一致、使用了不稳定的排序、LIMIT语句与ORDER BY配合问题、缓存设置不当或数据库复制配置错误。需要检查查询逻辑和系统配置以解决这些问题。 MySQL分页导致数据重复的原因&#xff1a; 1、排序算法…

补题:C. Paprika and Permutation

C. Paprika and Permutation 传送门&#xff1a;Problem - 1617C - Codeforces 题意&#xff1a; 思路&#xff1a; 首先这个题要知道这个结论&#xff1a; 当 x > a[i] 时&#xff0c;a[i] mod x a[i] 当 x < a[i] 时&#xff0c;0 < a[i] % x < ( a[i] 1 )…

【unity小技巧】Unity6 LTS版本安装和一些修改和新功能使用介绍

文章目录 前言安装新功能变化1、官方推荐使用inputsystem进行输入控制2、修复了InputSystem命名错误导致listen被遮挡的bug3、自带去除unity启动画面logo功能4、unity官方的behavior行为树插件5、linearVelocity代替过时的velocity方法待续 完结 前言 2024/10/17其实unity就已…

ChatGPT 现已登陆 Windows 平台

今天&#xff0c;OpenAI 宣布其人工智能聊天机器人平台 ChatGPT 已开始预览专用 Windows 应用程序。OpenAI 表示&#xff0c;该应用目前仅适用于 ChatGPT Plus、Team、Enterprise 和 Edu 用户&#xff0c;是一个早期版本&#xff0c;将在今年晚些时候推出"完整体验"。…

【Java函数篇】Java8中函数接口Function使用详解

文章目录 函数接口Function函数式接口只允许有一个抽像方法通过Lambda表达式实现接口 FunctionalInterface注解构建一个函数式接口使用自己创建的函数式接口 JDK中的函数式接口Function函数最常用的Function<T,R>使用apply(T t)andThen(Function<? super R,? extend…

CTF(五)

导言&#xff1a; 本文主要讲述在CTF竞赛中&#xff0c;web类题目easyphp。 靶场链接&#xff1a;攻防世界 (xctf.org.cn) 参考文章原文链接&#xff1a;Web安全攻防世界05 easyphp&#xff08;江苏工匠杯&#xff09;_攻防世界 easyphp-CSDN博客 一&#xff0c;观察页面。…

OpenCV学习笔记5——图像的数值计算

目录 一、简单数值计算 二、opencv中提供函数进行计算 三、cv2.addWeighted 一、简单数值计算 在opencv中&#xff0c;我们有许多可以获取图像各类数值的办法&#xff0c;许多函数能获得各种方面的数据。但如果我们什么都不用&#xff0c;仅仅对图像上每一个点做加法运算会…

计算机网络:数据链路层 —— 扩展共享式以太网

文章目录 共享式以太网共享式以太网存在的问题在物理层扩展以太网扩展站点与集线器之间的距离扩展共享式以太网的覆盖范围和站点数量 在链路层扩展以太网网桥的主要结构网桥的基本工作原理透明网桥自学习和转发帧生成树协议STP 共享式以太网 共享式以太网是当今局域网中广泛采…

【MySQL】表的约束、基本查询、内置函数

目录 1. 表的约束1.1 空属性1.2 默认值1.3 列描述1.4 zerofill1.5 主键1.6 自增长1.7 唯一键1.8 外键 2. 基本查询2.1 表的增删改查2.1.1 插入数据2.1.2 插入否则更新2.1.3 替换插入 2.2 Retrieve2.2.1 select ----- 查询2.2.2 where ----- 筛选2.2.3 order by ----- 结果排序2…

全方面熟悉Maven项目管理工具(一)认识Maven、Maven如何安装?

1. Maven 1.1 应用场景&#xff1a; 本地仓库&#xff1a; 我们使用的jar依赖于maven的本地仓库 自动部署&#xff1a; 本地仓库推送到远程仓库&#xff0c; 远程库通知 Jenkins工具&#xff0c;Jenkins 调用Maven构建war包&#xff0c;Jenkins 再调用准备好的脚本程序&…

linux jdk环境变量变量新配置方式

1.jdk17--> jdk8环境变量配置,source /etc/profile了也不生效 which java #假设上命令运行结果为/usr/bin/java rm -rf /usr/bin/javaln -s $JAVA_HOME/bin/java /usr/bin/java source /etc/profile# 断开本次远程连接&#xff0c;重连检查java -version 2.jdk环境变量变…