0

weblogic.application.ModuleException:org.springframework.beans.factory.support.BeanDefinitionOverrideException:在类路径资源[org/springframework/security/config/annotation/web/configuration/WebSecurityConfiguration.class]中定义的名称为“conversionServicePostProcessor”的bean定义无效:无法注册bean定义[根bean:类[org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration];范围=; 摘要=假;惰性初始化=空;自动线模式=3;依赖检查=0;自动接线候选=真;主要=假;工厂BeanName=空;factoryMethodName=conversionServicePostProcessor;初始化方法名=空;destroyMethodName=(推断);在类路径资源 [org/springframework/security/config/annotation/web/configuration/WebSecurityConfiguration.class]] 中为 bean 定义 conversionServicePostProcessor': 已经有【根 bean: 类 [org.springframework.security.config.annotation.web.reactive.WebFluxSecurityConfiguration]; 范围=; 摘要=假;惰性初始化=空;自动线模式=3;依赖检查=0;自动接线候选=真;主要=假;工厂BeanName=空;factoryMethodName=conversionServicePostProcessor;初始化方法名=空;destroyMethodName=(推断);

如何摆脱错误并使用我的反应式弹簧安全性?

我尝试将 Web 应用程序类型设置为响应式,但仍然出现相同的错误。

4

1 回答 1

0

导致此异常的原因是 spring-webmvc 和 spring-reactor 在类路径上并且都触发了它们的自动配置 bean,这会导致冲突 - 在我的情况下主要是在单元测试中。

要防止此异常,您必须执行以下操作:

  1. 禁用要排除的 Web 模块的自动配置: @EnableAutoConfiguration(exclude = [WebMvcAutoConfiguration::class, ManagementWebSecurityAutoConfiguration::class]) class MyTest {...}
  2. 允许 bean 覆盖: spring.main.allow-bean-definition-overriding=true
于 2022-03-02T15:19:58.457 回答