HTTP 状态 500 - 过滤器执行引发异常 - doFilter 和 invokeDelegate 重复

2023-12-31

我正在使用 Spring-MVC (4.2.5) 和 Spring-Security (4.1.3) 来开发 Web 应用程序。当我尝试将后者合并到我的 mvc 项目中时,我开始遇到问题。

目前,经过多次尝试,我在 localhost:8080/BetEx/ 的 tomee 服务器中收到此错误

HTTP Status 500 - Filter execution threw an exception

type Exception report

message Filter execution threw an exception

description The server encountered an internal error that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Filter execution threw an exception
root cause

java.lang.StackOverflowError
    org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:246)
    org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
[repeated many, many times]

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    id="WebApp_ID" version="3.0">
    <display-name>BetEx</display-name>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>

    <!-- Spring MVC -->
    <servlet>
        <servlet-name>betex-controller</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>betex-controller</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

    <!-- Spring Security Configuration File -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring/spring-security.xml</param-value>
    </context-param>
        <context-param>
        <param-name>contextClass</param-name>
        <param-value>
         org.springframework.web.context.support.AnnotationConfigWebApplicationContext
      </param-value>
    </context-param>

    <!-- Spring Security -->
    <filter>
        <filter-name>springSecurityFilterChain</filter-name>
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>springSecurityFilterChain</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

betex-controller-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="
   http://www.springframework.org/schema/beans     
   http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
   http://www.springframework.org/schema/context 
   http://www.springframework.org/schema/context/spring-context-4.3.xsd
   http://www.springframework.org/schema/mvc 
   http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd">

    <context:component-scan base-package="controller" />
    <context:component-scan base-package="service" />

    <mvc:annotation-driven />

    <mvc:resources mapping="/resources/**" location="/resources/" />

    <bean id="templateResolver"
        class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
        <property name="prefix" value="/WEB-INF/html/" />
        <property name="suffix" value=".html" />
        <property name="templateMode" value="HTML5" />
    </bean>

    <bean id="templateEngine" class="org.thymeleaf.spring4.SpringTemplateEngine">
        <property name="templateResolver" ref="templateResolver" />
    </bean>

    <bean class="org.thymeleaf.spring4.view.ThymeleafViewResolver">
        <property name="templateEngine" ref="templateEngine" />
        <property name="order" value="1" />
    </bean>

    <bean id="springSecurityFilterChain" class="org.springframework.web.filter.DelegatingFilterProxy" />    

</beans>

spring-security.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/security"
    xmlns:security="http://www.springframework.org/schema/security"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans"
    xsi:schemaLocation="
      http://www.springframework.org/schema/security 
      http://www.springframework.org/schema/security/spring-security-4.1.xsd
      http://www.springframework.org/schema/beans 
      http://www.springframework.org/schema/beans/spring-beans-4.3.xsd">

    <http pattern="/resources/**" security="none" />

    <http use-expressions="true">
        <intercept-url pattern="/index*" access="isAnonymous()" />
        <intercept-url pattern="/**" access="isAuthenticated()" />

        <form-login login-page='/index.html' default-target-url="/home.html"
            authentication-failure-url="/index.html?error=true" />

        <logout logout-success-url="/index.html" />

    </http>
    <authentication-manager>
        <authentication-provider user-service-ref="customUserDetailsService">
            <password-encoder hash="bcrypt" />
        </authentication-provider>
    </authentication-manager>
</beans:beans>

我认为这个错误意味着框架无法加载 DelegatingFilterProxy bean 并将其委托给应用程序上下文。

我哪里错了? 提前致谢

EDIT:

按照 dur 的建议,从 betex-controller-servlet.xml 中删除以下行后

<bean id="springSecurityFilterChain" class="org.springframework.web.filter.DelegatingFilterProxy" />

我在尝试打开 web 应用程序的根目录时收到以下错误:

GRAVE: Servlet.service() for servlet [betex-controller] in context with path [/BetEx] threw exception
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'springSecurityFilterChain' is defined
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:698)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1175)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:284)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1060)
    at org.springframework.web.filter.DelegatingFilterProxy.initDelegate(DelegatingFilterProxy.java:326)
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:255)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:44)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)

仔细检查了所有配置文件,阅读了文档后,我得出的结论是没有任何问题。我只是解决了从版本 4.1.3 降级到 4.0.3

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HTTP 状态 500 - 过滤器执行引发异常 - doFilter 和 invokeDelegate 重复 的相关文章

随机推荐

  • Android 拆分无法正常工作

    在过去的 4 个月里 我一直在开发 Android 应用程序 并遇到了以下有关拆分功能的问题 String arr SoapPrimitive result SoapPrimitive envelope getResponse arr re
  • Google OAuth2 服务帐户 HTTP/REST 身份验证

    我正在尝试使用下面的文档发出访问令牌请求 https developers google com identity protocols OAuth2ServiceAccount https developers google com ide
  • Kleisli 组合的编译错误

    我有一个复制自的验证模块面向铁路的编程 http fsharpforfunandprofit com posts recipe part2 在我的应用程序中执行错误处理 type ErrorMessage ErrorMessage of s
  • 强制 Nosetests 使用 Python 2.7 而不是 3.4

    我一直在使用 3 4 版本学习 Python 我最近开始学习 Web py 因此一直使用 Python 2 7 因为 Python 3 4 不支持 web py 我为Python 3 4 和2 7 安装了nose 1 3 4 模块 我需要对
  • SSIS 错误代码:0xC0014009

    如何解决 SQL Server 代理运行作业 SSIS 失败并出现错误代码 0xC0014009 的问题 我的工作 ssis 包将数据从源数据库 interbase 转换到目标 SQL Server 以使用 ODBC 我发现工作失败了 错误
  • ARMAX模型预测在传递exog值时导致“ValueError:矩阵未对齐”

    我正在努力使用 ARMAX 模型预测样本值 拟合模型效果很好 armax mod31 sm tsa ARMA endog sales order 3 1 exog media fit armax mod31 fittedvalues 就我有
  • 带图案边框的自定义 PopOver

    I m trying to implement popover like that 我花了很多时间尝试定制UIPopoverController and UIPopoverBackgroundView 据我了解 使用弹出窗口的公共 API
  • 在函数中使用模板模板参数时出现无匹配函数错误

    我正在尝试使用模板模板参数定义一个函数 我只想知道它是如何工作的 我有以下内容 template
  • MSMQ 获取所有专用队列

    有没有办法使用 NET 4 0 获取 MSMQ 5 0 上的所有队列 干杯 MessageQueue GetPrivateQueuesByMachine http msdn microsoft com en us library syste
  • 删除 Xcode 生成的源代码中的版权

    使用 Xcode 4 创建新的源代码文件时 有什么方法可以完全删除带有版权声明的注释吗 代替 MainView h ProjectName Created by First Last Name on 1 2 34 Copyright c 2
  • Angular 4:何时以及为何在构造函数中使用 @Inject?

    问题陈述 我正在学习 Angular 4 我偶然发现了一段代码 其中 Inject正在使用在constructor我不明白为什么 代码和来源 我正在使用 Angular 4 材质 代码来源 https material angular io
  • 选择特定的 Ubuntu 版本

    如果我使用默认的 travis 文件 那么构建机器似乎是 Ubuntu Precise Hit http ppa launchpad net precise Release gpg 是否有任何调整可以使用值得信赖或乌托邦的机器 现在已经实现
  • 在 Yii2 中覆盖 Bootstrap CSS

    我有一个NavBar我想覆盖 Yii 放在该小部件上的所有类 在搜索谷歌并阅读文档后 我发现这段代码 Yii container gt set yii bootstrap NavBar containerOptions gt class g
  • 如何在 OCR 认知中使用 application/octet-stream 发送图像

    您好 我正在尝试使用 Microsoft 的 OCR API 它期望内容类型应用程序 八位字节流和正文 发布二进制文件 我尝试将图像作为 Base64 二进制 发送 只是二进制 但是它不起作用 有人知道这张图片需要如何发送吗 文档链接 ht
  • 为什么 Path.GetDirectoryName 函数必须依赖于 260 个字符的限制

    public static void Main testing file name var fileName server7 EmailAttachments myfolder abc 2012 1126 e85c6b82 edc5 4ce
  • 使用简单 HTML DOM 循环遍历表格

    我正在使用 Simple HTML DOM 从 HTML 文档中提取数据 但有几个问题需要帮助 在以以下开头的行上if td gt find a 我想分别提取href和锚节点的内容 并将它们放在单独的变量中 然而 该代码不起作用 请参阅下面
  • 如何防止在文本字段中输入特定字符?

    我想知道如何阻止在 UITextfield 中输入某些字符 例如 如果我不希望在此文本字段中键入字母 A G P Q X 但允许其余字母 我对此很陌生 感谢您的帮助 您需要为此使用 UITextViewDelegate 在委托方法之一中捕获
  • 数字格式,写1e-5而不是0.00001

    我用过read table读取包含数字 例如 0 00001 的文件 当我写回它们时write table这些数字显示为 1e 5 如何保留旧格式 我只想改变scipen呼叫前的选项write table 请注意 这也会改变打印到控制台时数
  • Eclipse 中的 ESlint

    我在工作中得到了一个 Web 项目 其中有一个 eslintrc 文件 并被告知使用它 我认为这会强制执行代码样式 听起来是个好主意 但我以前从未这样做过 我刚刚切换到 Eclipse Neon 但我找不到有关如何使用它的教程 我确实发现了
  • HTTP 状态 500 - 过滤器执行引发异常 - doFilter 和 invokeDelegate 重复

    我正在使用 Spring MVC 4 2 5 和 Spring Security 4 1 3 来开发 Web 应用程序 当我尝试将后者合并到我的 mvc 项目中时 我开始遇到问题 目前 经过多次尝试 我在 localhost 8080 Be