一个或多个筛选器或者Listeners启动失败 的问题探索以及解决方案
2020年10月9日更新
经过本人对SSM框架理解的加深和对IDEA工具使用的熟悉,现提出一种新的解决办法,以前的解决办法可能存在问题
1. 问题描述:
使用IDEA作为开发工具,使用Maven作为项目管理工具,完成一个web项目后使用Tomcat作为服务器启动项目,报错一个或多个筛选器启动失败或者org.apache.catalina.core.StandardContext.startInternal 一个或多个listeners启动失败,更多详细信息查看对应的容器日志文件,错误原因应该是一致的.
2. 根本原因:
在项目部署运行环境下,项目依赖的jar包没有导入到项目部署的环境中,说白话就是部署环境中缺少jar包
3. 出现的可能原因:
创建Maven项目时,没有选择Maven提供的架构,创建的普通Maven项目,创建完成后再为项目添加web框架支持导致的,这样创建的项目IDEA不会自动添加项目依赖的jar包到WEB-INF/lib目录.所以创建web项目时,如果要使用Maven作为项目管理工具,尽量选择Maven提供的项目架构即可避免
4. 解决办法:
把缺少的jar包导入即可,WEB-INF目录下新建lib文件夹,右键选择Add copy of-->Library File,将项目所有需要的依赖添加即可.如下图所示
具体操作(针对于IDEA开发工具)



总结:
从图示中可以看出,如果缺少lib文件夹或者你的classes文件夹同级目录不存在你的项目依赖的话,项目部署之后的环境中,java类是找不到依赖的jar包的.
所以就会出现以下问题
1. 如果项目配置了监听器Listener,项目启动会失败,报错org.apache.catalina.core.StandardContext.startInternal 一个或多个listeners启动失败,更多详细信息查看对应的容器日志文件
2. 如果项目配置了过滤器Filter, 项目启动会失败,报错一个或多个筛选器启动失败
3. 如果项目没有配置以上两种,那么在访问需要依赖别的jar包的java程序时就会报错ClassNotFoundException
因为Lisenter和Filter是在容器启动的时候启动的,就需要依赖jar包,如果找不到,容器就会启动失败,普通Java程序是在第一次访问的时候才会被调用,所以会在访问时报错
--------------------------------以下为原文章-----------------------------------
问题描述:
做一个字符编码过滤器.注册xml后,Tomcat启动web项目提示如下错误信息 :
org.apache.catalina.core.StandardContext.startInternal 一个或多个筛选器启动失败。
将web.xml 中的注册信息注释项目能正常运行,所以怀疑是过滤器的问题
CharacterEncodingFilter.java
package com.shme.filter;
import javax.servlet.*;
import java.io.IOException;
/**
* @Desc 字符编码过滤器
*/
public class CharacterEncodingFilter implements Filter{
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("CharacterEncodingFilter过滤器初始化");
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
//设置utf-8
request.setCharacterEncoding("utf-8");
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
chain.doFilter(request,response);
}
@Override
public void destroy() {
System.out.println("CharacterEncodingFilter过滤器销毁");
}
}
web.xml (3.1版本)
<!--字符编码过滤器-->
<filter>
<filter-name>charset</filter-name>
<filter-class>com.shme.filter.CharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>charset</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
解决办法 :
原因 :
使用Maven创建项目,IDEA部署到Tomcat服务器时,在本人的开发环境中会有几率遇到不编译java文件夹下的java源文件,导致tomcat在部署项目时, Filter需要优先启动,在web.xml中寻找映射时,项目文件中Filter实现类没有被编译,所以才会报错.
解决办法 :
参考本人的另一篇文章 https://www.cnblogs.com/shmebluk/p/13192777.html
一个或多个筛选器或者Listeners启动失败 的问题探索以及解决方案的更多相关文章
- 一个或多个筛选器或者Listeners启动失败
问题描述 运行ssm项目,tomcat启动后报下面的错误. org.apache.catalina.core.StandardContext.startInternal 一个或多个listeners启 ...
- 事件日志:无法加载站点/服务的所有 ISAPI 筛选器。因此启动中止。
事件日志:无法加载站点/服务的所有 ISAPI 筛选器.因此启动中止. Service Unavailable解决 故障状态:Internet 信息服务(IIS)管理器 里 应用程序池出现错误 “应用 ...
- 一个或多个listeners启动失败,更多详细信息查看对应的容器日志文件
碰到这个问题很多次,每次碰到都是去百度找.但是,不尽人意,好在最后还是解决了,所以写下总结. 报错内容: org.apache.catalina.core.StandardContext.startI ...
- idea问题之"一个或多个listeners启动失败问题"
org.apache.catalina.core.StandardContext.startInternal 一个或多个listeners启动失败,更多详细信息查看对应的容器日志文件之 "A ...
- ASP.NET Web API 安全筛选器
原文:https://msdn.microsoft.com/zh-cn/magazine/dn781361.aspx 身份验证和授权是应用程序安全的基础.身份验证通过验证提供的凭据来确定用户身份,而授 ...
- ISAPI筛选器及对ASP源文件的保护
ISAPI筛选器及对ASP源文件的保护 2009-04-21 01:45:57 标签:ISAPI 筛选器 ASP 源文件 保护 摘要:本文介绍了利用ISAPI筛选器保护ASP源文件的方法,并给出一个实 ...
- MVC四大筛选器—ExceptionFilter
该筛选器是在系统出现异常时触发,可以对抛出的异常进行处理.所有的ExceptionFilter筛选器都是实现自IExceptionFilter接口 public interface IExceptio ...
- MVC四大筛选器—ActionFilter&ResultedFilter
AuthorizeFilter筛选器 在Action的执行中包括两个重要的部分,一个是Action方法本身逻辑代码的执行,第二个就是Action方法的筛选器的执行. MVC4中筛选器都是以AOP(面向 ...
- tableau-交互筛选器
欢迎观看这段关于“交互筛选器”的视频. 将字段拖到筛选器功能区就可以轻松执行筛选,但是如果我们希望能够直接从视图中修改筛选器 选择项,那该怎么办?如果我们在可看到“子类别”字段的任何位置右键单击, ...
随机推荐
- struct2中package的参数解析
struct2框架的核心组件是action和拦截器,它使用包来管理action和拦截器,每个包就是多个action.多个拦截器引用的集合.在struct.xml中,package元素用于定义包的配置, ...
- BuaacodingT141 microhhh的回城 题解(模拟)
题目链接 microhhh的回城 解题思路 这题挺有意思的.本来寻思放在\(DS\)第一次练习赛应该不会很难吧,结果愣是卡在数据范围上写不出来. 然后暴力过掉了,但是用了\(1019ms\).感觉可以 ...
- Python爬虫知识
一.爬虫 1.概述 网络爬虫,搜索引擎就是爬虫的应用者. 2.爬虫分类 (1)通用爬虫,常见就是搜索引擎,无差别的收集数据,存储,提取关键字,构建索引库,给用户提供搜索接口. 爬取一般流程: 初始化一 ...
- python tempfile 创建临时目录
一.tempfile介绍 该模块创建临时文件和目录.它适用于所有支持的平台.TemporaryFile,NamedTemporaryFile,TemporaryDirectory,和SpooledTe ...
- Mybatis中由于${}直接注入引发的问题
一.问题引入 我们先来看这段代码,我想从取值为${category}的表中查询全部信息. @Mapper public interface CategoryMapper { @Select(" ...
- MySQL语法基础
一.通用语法 1.MySQL数据库的SQL语句不区分大小写 2.可以用/**/完成注释 3.常用数据类型 类型 描述 int 整型 double 浮点型 varchar 字符串型 date 日期类型, ...
- ch1_6_3求解移动字符串问题
import java.util.Scanner; public class ch1_6_3求解移动字符串问题 { public static void main(String[] args) { / ...
- java集合【12】——— ArrayList,LinkedList,Vector的相同点与区别是什么?
目录 特性列举 底层存储结构不同 线程安全性不同 默认的大小不同 扩容机制 迭代器 增删改查的效率 总结一下 要想回答这个问题,可以先把各种都讲特性,然后再从底层存储结构,线程安全,默认大小,扩容机制 ...
- [Design Pattern With Go]设计模式-工厂模式
这次介绍的设计模式是工厂模式,这是一个比较常见的创建型模式.一般情况下,工厂模式分为三种:简单工厂.工厂方法和抽象工厂,下面慢慢举例介绍下. 简单工厂 考虑一个加密程序的应用场景,一个加密程序可能提供 ...
- 【LiteOS】LiteOS任务篇-源码分析-创建任务函数
目录 前言 链接 参考 笔录草稿 部分源码分析 源码分析 LOS_TaskCreate函数 LOS_TaskCreateOnly函数 宏 OS_TCB_FROM_PENDLIST 和 宏 LOS_DL ...