IDEA项目运行项目报404错误——org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD。

问题:
  org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。
  org.apache.catalina.core.StandardContext.startInternal 一个或多个listeners启动失败,更多详细信息查看对应的容器日志文件。
  org.apache.catalina.core.StandardContext.startInternal 由于之前的错误,Context[]启动失败
原因:
前提:项目tomcat配置是成功的,因为访问页面是报的404;数据库连接也是成功的。由于这个问题,导致我在浏览器访问项目时,报了404错误,排查了一轮,不是因为程序打包war包时错误,而是项目里依赖的jar出现问题。
在这里插入图片描述
解决方法:
  我是直接改版本,去maven的中央仓库找最新的,把版本号抄下来,maven自动下载好了。之前是用1.1.21版的,改用1.2.8版的。
  maven中央仓库的网址:https://mvnrepository.com/
在这里插入图片描述
解决完以上问题,重新启动Tomcat,再访问项目还是报404错误。
  回项目结构再检查,发现新版本下载后还是报红在这里插入图片描述
  到本地仓库去查看是不是下载出现问题。
在这里插入图片描述
  jar文件大小是3616kb的,也不是空包啊。在项目里刷新一下,也是能看到druid依赖已经添加进来了呀。
在这里插入图片描述
  又排查了一轮,可能是因为扫描jar包冲突引起的,要修改一下Tomcat的【catalina.properties】配置文件。
  修改为:tomcat.util.scan.StandardJarScanFilter.jarsToSkip=*.jar
在这里插入图片描述
  为什么要这样修改,可以看一下这个博主的文章。
  原文链接:https://blog.csdn.net/IT_Migrant_worker/article/details/105006081
    配置文件中默认的一些类tomcat已经设置。
    如果有jar包冲突的可以这个中添加忽略
    tomcat.util.scan.DefaultJarScanner.jarsToSkip
    如果有jar包需要扫描可以在中添加
    tomcat.util.scan.StandardJarScanFilter.jarsToScan

————————————————报错一解决————————————————————






问题: org.apache.catalina.core.StandardContext.startInternal 一个或多个listeners启动失败,更多详细信息查看对应的容器日志文件。
百度找到的问题出处: 在项目部署运行环境下,项目依赖的jar包没有导入到项目部署的环境中,说白话就是部署环境中缺少jar包,因为我这个项目是引入的,不是在IDEA新建的,IDEA不会自动添加项目依赖的jar包到WEB-INF/lib目录.所以创建web项目时,如果要使用Maven作为项目管理工具,尽量选择Maven提供的项目架构即可避免。

1.删除原编译的target包,重新编译再生成。
2.重构项目【Project Structure——Artifacts
  把没添加进来的jar包添加进来。
在这里插入图片描述
在这里插入图片描述
重新添加jar包,再启动还是不行!!!
  查了很多资料,得出——如果项目配置了监听器Listener,项目启动会失败,报错org.apache.catalina.core.StandardContext.startInternal 一个或多个listeners启动失败,更多详细信息查看对应的容器日志文件。
  注释了监听器的配置代码,可以启动了,我Tomcat版本是10.0.17,更换为Tomcat8版本的正常启动了。
————————————————报错二解决————————————————————





问题: Context[]启动失败
问题出处: 配置文件报错——统一资源标识符没有注册
在这里插入图片描述
解决方法: 添加标识符
在这里插入图片描述
在这里插入图片描述
————————————————报错三解决————————————————————

  • 9
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这句话的意思是:org.apache.jasper.servlet.tldscanner.scanjars 至少扫描一个jar文件用于tld(标签库描述文件),但是这个jar文件中并没有包含tld文件。 ### 回答2: org.apache.jasper.servlet.tldscanner.scanjars是Tomcat服务器的一个功能,它会扫描WEB-INF/lib文件夹下的所有jar包,寻找里面是否有tag library descriptor(TLD)文件,如果找到了,则会将其载入服务器,以供JSP页面中使用。但是,该功能在扫描到某个jar包时,发现其中没有TLD文件,就会出该错误提示“至少一个jar扫描用于tld但尚包含tld”。 这个错误提示的意思是,Tomcat服务器在加载JSP页面所需的标签库文件时,扫描到了某个jar包,但是在该jar包内并没有包含TLD文件。而TLD文件是定义标签库中所包含标签的DTD文档,是JSP页面中调用标签库必不可少的文件。所以,如果该错误提示被触发,说明某个JAR包中确实缺少必要的TLD文件,需要新增或修复该jar包,以在JSP页面中成功调用标签库。 解决该问题需要以下步骤: 1.确定是哪个JAR文件缺少TLD文件。 在错信息中会提示是哪个jar文件缺少TLD文件,根据提示确定出具体的jar包名称。 2.检查该jar包是否有相应的TLD文件。 用压缩软件打开该jar包,寻找是否存在TLD文件。TLD文件通常位于META-INF目录下,名字以"*.tld"结尾,比如说"struts-tags.tld"、"commons-logging.tld"等不同jar包中的TLD文件。若不存在TLD文件,则需要手动添加。 3.新增或修复TLD文件。 TLD文件可以通过复制其他JAR包中的TLD文件,或者手动编写TLD文件来新增或修复。在新增或者修复之后,需要重新打包该jar包,以供Tomcat服务器使用。 总之,当出现“org.apache.jasper.servlet.tldscanner.scanjars 至少一个jar扫描用于tld但尚包含tld”这个错误提示时,需要先通过错信息确定哪个jar包缺少TLD文件,然后通过检查和修复来解决该问题。 ### 回答3: org.apache.jasper.servlet.tldscanner.scanjars错误是一个由Tomcat服务器发出的错误。它通常表示在服务器启动期间扫描TLD文件时发生了问题,因为其中至少一个Jar包被扫描用于TLD,但是尚未包含TLD。 解决此错误的方法包括: 1. 更新Tomcat服务器版本:最新的Tomcat版本可能已经解决了这个问题,若有可能更新一下tomcat服务器版本。 2. 确认Jar包中是否确实缺少TLD文件 :检查包含Jar包的项目或库文件,确保其中的Jar包确实缺少TLD文件。 如果确实缺少TLD文件,可以通过使用包含TLD文件的正确版本的Jar包进行替换。如果没有缺少TLD文件,则需要详细了解更多关于Tomcat服务器的配置信息。 3. 在Tomcat的上下文中设置发现TLD文件位置的选项:许多情况下,TLD文件没有正确引用,因此服务器无法在指定的位置找到该文件。可以尝试在Tomcat的上下文中设置参数,以告知服务器应该查找TLD文件的位置。这可以通过在web.xml文件中进行配置来实现。 总而言之,org.apache.jasper.servlet.tldscanner.scanjars错误是一个Tomcat服务器启动时的常见问题,但是通过这三个解决方法,基本可以全面解决此问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值