zoukankan      html  css  js  c++  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

  • 相关阅读:
    linux tmux基本操作
    AJAX json集合传入Controller后台
    python 数据读取
    appium
    接口测试设计思路
    python 常用模块
    接口测试程序部分
    测试用例设计思路
    mock_待续
    网站收藏
  • 原文地址:https://www.cnblogs.com/shmebluk/p/13191821.html
Copyright © 2011-2022 走看看