Tomcat 8 报错:FAIL - Application at context path /xxxx could not be started

news/2025/1/16 17:40:50/文章来源:https://www.cnblogs.com/whbg/p/18513413

一、问题描述

在本地 Tomcat 部署项目后,在浏览器中打开项目报错 The origin server did not find a current representation for the target resource or is not willing to disclose that one exists

image0-1

造成这个错误的原因有很多,可能是路径错误,也可能是项目编译包错误,亦或是版本不兼容导致项目启动失败。尝试访问 http://localhost:8080/manager/html 进入 Tomcat 应用管理页面手动启动页面后,报错 FAIL - Application at context path /xxxx could not be started

image0-2

二、原因分析

以上问题在重装 Tomcat 9.0 版本后已经成功解决,但是出于好奇心,还是想探查一下造成报错的原因。所以下面主要提供的是如何查找问题的详细步骤。

1. 首先需要前往 Tomcat 目录下的 logs 中查看最新的 catalina 日志

image1-1

2. 在日志中查找到报错的信息

报错信息为 org.apache.catalina.core.StandardContext.startInternal One or more Filters failed to Start. 大约说是过滤器启动失败了。到此为止还是没有看出具体是哪个地方出了错,因此下一步需要获取更详细的报错信息。

image1-2

3. 在项目的 WEB-INF/classes 下创建文件 logging.properties

image1-3

4. logging.properties 文件中添加如下代码:

handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHandler  ############################################################  
# Handler specific properties.  
# Describes specific configuration info for Handlers.  
############################################################  org.apache.juli.FileHandler.level = FINE  
org.apache.juli.FileHandler.directory = ${catalina.base}/logs  
org.apache.juli.FileHandler.prefix = error-debug.  java.util.logging.ConsoleHandler.level = FINE  
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

5. 重新启动 Tomcat 服务后就可以在窗口中查看报错信息了

image1-4

三、解决方法

报错信息为Exception starting filter XSSFilter,错误类型 java.lang.AbstractMethodError。参考网上各位前辈的说法,并结合个人判断,大致可以确定报错原因是:Tomcat 8 使用的 Filter 没有默认实现 init 与 destroy 方法,导致初始化 XSSFilter 失败。

方法一:升级 Tomcat 版本到 9.x。原因是 9.x 的Tomcat 的共享库 Filter 有默认实现 init 与 destroy 方法

方法二:修改项目代码,为所有 Filter 都添加默认 init 与 destroy 方法

public class xxxxFilter implements Filter {public void init(FilterConfig fConfig) throws ServletException {}public void destroy() {}
}

参考文档

[1] 关于部署项目到tomcat,报FAIL - Application at context path /JDYProject could not be started - CoderBruis
[2] 遇到“org.apache.catalina.core.StandardContext.startInternal One or more listeners failed to start.”怎么办 - 正怒月神
[3] 记一次Tomcat服务部署,启动过滤器异常,问题查找过程 - sliker
[4] 【问题解决】Tomcat启动服务时提示Filter初始化或销毁出现java.lang.AbstractMethodError错误 - 东北小狐狸

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CMDB平台(进阶篇):CMDB的应用场景剖析

配置管理数据库(Configuration Management Database,简称CMDB)是IT服务管理(ITSM)中的核心组件。随着信息技术的快速发展,大型企业的IT环境变得越来越复杂,为了更好地管理和维护这些复杂的IT基础设施,近些年来国内CMDB平台越来越多,如乐维CMDB、华为CMDB等。CMDB不仅是…

Python task

任务一: Leetcode 383 class Solution: def canConstruct(self, ransomNote: str, magazine: str) -> bool: cnt = Counter(magazine) for c in ransomNote: cnt[c] -= 1 if cnt[c] < 0: return False re…

19 内存与储存介质

一般电脑内存是非永久性,电源断了,内存数据将全部丢失 存储器是永久性的,除非被删除或覆盖 最初用打孔纸卡纸带来存储, 后来用延迟线存储器,利用声波来存储1,0数据。但只能顺序读取,不能任意读取 出现磁芯存储器,电流方向改变磁性也改变,将磁芯排列成网格。这种可以随…

“双系统”出炉!瑞芯微RK3562J非对称AMP:Linux+RTOS/裸机

“非对称AMP”双系统 AMP(Asymmetric Multi-Processing),即非对称多处理架构。“非对称AMP”双系统是指多个核心相对独立运行不同的操作系统或裸机应用程序,如Linux + RTOS/裸机,但需一个主核心来控制整个系统以及其它从核心。每个处理器核心相互隔离,拥有属于自己的内存,…

BitNet.cpp:革新性的1比特LLM推理框架,让CPU也能驾驭百亿参数大模型!

🌟 在人工智能的世界里,大型语言模型(LLM)以其强大的文本处理能力而闻名。但这些模型通常需要昂贵的GPU资源,这让许多开发者望而却步。今天,我们要介绍的BitNet.cpp,正是微软开源的1比特LLM推理框架,它能让你的CPU也能流畅运行百亿参数的巨型模型,这无疑是一场技术的…

Lattice ICE40LP8K开发

一、开发工具: ICEcube2,界面非常原始,只有PLL IP核添加功能,其他IP核貌似只能使用primitive替换。 不支持时序分析、在线仿真等功能。 二、原语使用全局布线资源在 iCE40 FPGA 设备中,有 8 个高驱动缓冲器,称为全局缓冲器(Global Buffers,GBUFx),它们连接到 8 条低偏…

安川YASKAWA工业机器人板卡维修策略

一、安川YASKAWA工业机器人板卡识别故障症状 首先,需要准确识别电路板故障的症状。这通常包括安川YASKAWA机器人操作不稳定、错误代码频繁出现、某些功能失效或整体性能下降等。通过仔细观察和诊断,可以确定问题是否源自电路板。 在工业机器人领域,广州子锐机器人技术有限公…

20222311 2024-2025-1 《网络与系统攻防技术》实验三实验报告

1.实践内容 (1)正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧正确使用msf编码器,使用msfvenom生成如jar之类的其他文件 veil,加壳工具 使用C + shellcode编程(2)通过组合应用各种技术实现恶意代码免杀 如果成功实现了免杀的,简单语言描述原理,不…

Linux安装Python 3.11

Linux安装python 在Linux上安装Python 3.11,你可以按照以下步骤进行。这些步骤以CentOS为例,但其他Linux发行版的过程大同小异,可能只需稍作调整。 1. 检查Python版本 首先,打开终端,检查系统上是否已安装Python 3.11: python3.11 --version # 或者 python3 --version如果…

java项目自启动方案——jar包做成服务(Windows版本)

需求:公司做的很多项目都是属于客户端—服务器形式,在客户端部分运行了属于面向用户操作的项目jar包,客户端机器就不像服务器那样,经常会遇到重启机器的情况,所以让我们的项目能自启动就是个必须的工作。方案: (1)环境:电脑需要安装Microsoft.NETFramework 4 ,如果有…

echarts 睡眠时间段+日期

效果图:关键方法代码:const initChartDataTwo = (scollectT, dataL) => {//给一个测试的数据 scollectT = [ "2024-10-29", "2024-10-25", "2024-10-24", "2024-10-22", "2024-10-18", "2024-10…

威联通NAS开机报错数据恢复

针对威联通NAS开机报错的数据恢复问题,以下是一些建议的解决步骤和恢复方法: 一、初步检查与诊断 检查硬件状态: 确保NAS设备的电源正常连接,并检查所有硬盘是否都正常工作。 如果可能,尝试重新插拔硬盘或更换故障硬盘。 2.查看错误代码和日志: 登录NAS管理界面(如果还能…