加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xml – 无法解析匹配的构造函数(提示:为简单参数指定索引/类型/

发布时间:2020-12-16 23:29:39 所属栏目:百科 来源:网络整理
导读:我在将 Spring安全性版本3迁移到4时遇到此异常.我正在使用基于Sprig 4 XML的安全性来实现它.你会非常感激 例外: Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘util:list#f1d6071’: Cannot creat
我在将 Spring安全性版本3迁移到4时遇到此异常.我正在使用基于Sprig 4 XML的安全性来实现它.你会非常感激

例外:

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘util:list#f1d6071’: Cannot create inner bean ‘security:filter-chain#1c5c0deb’ of
type [org.springframework.security.web.DefaultSecurityFilterChain] while setting bean property ‘sourceList’ with key [10]; nested exception is org.springframework.beans.factory.Bea
nCreationException: Error creating bean with name ‘security:filter-chain#1c5c0deb’: Cannot resolve reference to bean ‘adminConsoleDeniedExceptionTranslationFilter’ while setting co
nstructor argument with key [5]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘adminConsoleDeniedExceptionTranslationF
ilter’ defined in ServletContext resource [/WEB-INF/spring-security.xml]: Could not resolve matching constructor (hint: specify index/type/name arguments for simple parameters to a
void type ambiguities
)

在org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:282)[spring-beans-4.0.2.RELEASE.jar:4.0.2.RELEASE]
????在org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:121)[spring-beans-4.0.2.RELEASE.jar:4.0.2.RELEAS
E]

spring-security.xml(受影响的Spring 4 XML配置的一小部分)

<bean id="filterChainProxy" class="org.springframework.security.web.FilterChainProxy">
  <constructor-arg>
      <util:list>
          <security:filter-chain pattern="/refreshCache**" filters="scpf,noFilter,logoutFilter"/>
          <security:filter-chain pattern="/admin/adminConsole/**" filters="scpf,dsToSpringFilter,securityFilter,logoutFilter,fsi,adminConsoleDeniedExceptionTranslationFilter,adminConsoleFilter"/>
      </util:list>
  </constructor-arg>
</bean><bean id="etf"
    class="org.springframework.security.web.access.ExceptionTranslationFilter">
    <constructor-arg name="authenticationEntryPoint" ref="preAuthenticatedProcessingFilterEntryPoint"/>
</bean><bean id="adminConsoleDeniedExceptionTranslationFilter" class="org.springframework.security.web.access.ExceptionTranslationFilter">
       <constructor-arg name="authenticationEntryPoint2" ref="preAuthenticatedProcessingFilterEntryPoint"/>
       <constructor-arg ref="adminConsoleAccessDeniedHandler"/></bean><bean id="preAuthenticatedProcessingFilterEntryPoint" class="org.springframework.security.web.authentication.Http403ForbiddenEntryPoint"/><bean id="adminConsoleAccessDeniedHandler" class="org.springframework.security.web.access.AccessDeniedHandlerImpl"><property name="errorPage" value="/WEB-INF/jsp/adminConsoleAccessDenied.jsp"/></bean>

解决方法

第一个constructor-arg(bean adminConsoleDeniedExceptionTranslationFilter)中的Name属性具有奇怪的值authenticationEntryPoint2:

<bean id="adminConsoleDeniedExceptionTranslationFilter" class="org.springframework.security.web.access.ExceptionTranslationFilter">
    <constructor-arg name="authenticationEntryPoint2" ref="preAuthenticatedProcessingFilterEntryPoint"/>
    <constructor-arg ref="adminConsoleAccessDeniedHandler"/>
</bean>

根据documentation,它应该是authenticationEntryPoint.

否则,第二个constructor-arg没有name属性.考虑添加名称属性,或删除两者.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读