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

因为LisenterFilter是在容器启动的时候启动的,就需要依赖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启动失败 的问题探索以及解决方案的更多相关文章

  1. 一个或多个筛选器或者Listeners启动失败

    问题描述 运行ssm项目,tomcat启动后报下面的错误. org.apache.catalina.core.StandardContext.startInternal 一个或多个listeners启 ...

  2. 事件日志:无法加载站点/服务的所有 ISAPI 筛选器。因此启动中止。

    事件日志:无法加载站点/服务的所有 ISAPI 筛选器.因此启动中止. Service Unavailable解决 故障状态:Internet 信息服务(IIS)管理器 里 应用程序池出现错误 “应用 ...

  3. 一个或多个listeners启动失败,更多详细信息查看对应的容器日志文件

    碰到这个问题很多次,每次碰到都是去百度找.但是,不尽人意,好在最后还是解决了,所以写下总结. 报错内容: org.apache.catalina.core.StandardContext.startI ...

  4. idea问题之"一个或多个listeners启动失败问题"

    org.apache.catalina.core.StandardContext.startInternal 一个或多个listeners启动失败,更多详细信息查看对应的容器日志文件之 "A ...

  5. ASP.NET Web API 安全筛选器

    原文:https://msdn.microsoft.com/zh-cn/magazine/dn781361.aspx 身份验证和授权是应用程序安全的基础.身份验证通过验证提供的凭据来确定用户身份,而授 ...

  6. ISAPI筛选器及对ASP源文件的保护

    ISAPI筛选器及对ASP源文件的保护 2009-04-21 01:45:57 标签:ISAPI 筛选器 ASP 源文件 保护 摘要:本文介绍了利用ISAPI筛选器保护ASP源文件的方法,并给出一个实 ...

  7. MVC四大筛选器—ExceptionFilter

    该筛选器是在系统出现异常时触发,可以对抛出的异常进行处理.所有的ExceptionFilter筛选器都是实现自IExceptionFilter接口 public interface IExceptio ...

  8. MVC四大筛选器—ActionFilter&ResultedFilter

    AuthorizeFilter筛选器 在Action的执行中包括两个重要的部分,一个是Action方法本身逻辑代码的执行,第二个就是Action方法的筛选器的执行. MVC4中筛选器都是以AOP(面向 ...

  9. tableau-交互筛选器

    欢迎观看这段关于“交互筛选器”的视频.   将字段拖到筛选器功能区就可以轻松执行筛选,但是如果我们希望能够直接从视图中修改筛选器 选择项,那该怎么办?如果我们在可看到“子类别”字段的任何位置右键单击, ...

随机推荐

  1. Django 页面缓存的cache_key是如何生成的

    页面缓存 e.g. @cache_page(time_out, key_prefix=key_prefix) def my_view(): ... 默认情况下,将使用配置中的default cache ...

  2. apk签名、包名

    //通过各手机管理软件,如如360.豌豆荚等查看 //使用命令行,可以查看到permission.packagename.title.versionCode等 aapt dump badging ~/ ...

  3. Docker 一图胜千言

    Docker 一图胜千言 0 为什么 Docker 比虚拟机快? 注:少了一层抽象层( Hypervisor ) 1 Docker Logo 要素: 大海 宿主机 Host 鲸鱼 Docker 集装箱 ...

  4. Codeforces Round #538 D. Lunar New Year and a Wander

    题面: 传送门 题目描述: Bob想在公园散步.公园由n个点和m条无向边组成.当Bob到一个未经过的点时,他就会把这个点的编号记录在笔记本上.当且仅当Bob走完所有的点,他才会停下来.这时,Bob的笔 ...

  5. Quartz基础使用

    Quartz基本组成部分: 调度器:Scheduler 任务:JobDetail 触发器:Trigger,包括SimpleTrigger和CronTrigger . using Quartz; usi ...

  6. IPFS挖矿必须要托管吗?

    IPFS 本质上只是一个人人使用的协议,而 Filecoin 是 IPFS 的激励层,大家平时说的 IPFS 挖矿,其实就是挖 Filecoin.而提到IPFS 就不得不说到矿机托管的问题. 点击了解 ...

  7. 在Ubuntu上安装TensorFlow-GPU开发环境

    深度学习是一个比较复杂的体系,今天记录一下开发环境的搭建步骤. 全新安装Ubuntu 20.10,系统默认安装的是python3,查看python的版本: mango@ubuntu:~$ python ...

  8. 在docker容器中使用cplex-python37

    技术背景 线性规划是常见的问题求解形式,可以直接跟实际问题进行对接,包括目标函数的建模和各种约束条件的限制等,最后对参数进行各种变更,以找到满足约束条件情况下可以达到的最优解.Cplex是一个由IBM ...

  9. 前端 | 使用 ECharts 绘制关系图

    0 需求 做的项目需要画一个关系图,主要需求如下: 需要展示6种对象之间的关系:数据机构 数据 合约 模型 计算机构 应用 支持突出显示6种对象中的某一种的所有对象 支持Top x子图功能.top x ...

  10. shell分支与循环结构

    1. 条件选择 1.1 条件判断分支介绍 格式 if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMM ...