【问题标题】:Spring Bean errorSpring Bean 错误
【发布时间】:2015-04-01 21:23:10
【问题描述】:

我定义了以下 Spring Bean:

<bean id="grantingTicketExpirationPolicy" class="org.jasig.cas.ticket.support.TicketGrantingTicketExpirationPolicy"
      c:maxTimeToLive="${tgt.maxTimeToLiveInSeconds:32400}" c:timeToKill="${tgt.timeToKillInSeconds:32400}" c:timeUnit-ref="SECONDS" />

对应于this bean。通过上述配置,我得到以下异常:

SEVERE: Exception starting filter springSecurityFilterChain
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'grantingTicketExpirationPolicy' defined in ServletContext resource [/WEB-INF/spring-configuration/ticketExpirationPolicies.xml]: Could not resolve matching constructor (hint: specify index/type/name arguments for simple parameters to avoid type ambiguities)
    at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:250)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1075)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:979)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:487)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:296)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
    <long stack trace omitted for brevity>
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)

所以我所做的只是从这个示例文件中复制并更改:

<bean id="grantingTicketExpirationPolicy" class="org.jasig.cas.ticket.support.TicketGrantingTicketExpirationPolicy"
      c:maxTimeToLive="${tgt.maxTimeToLiveInSeconds:28800}" c:timeToKill="${tgt.timeToKillInSeconds:7200}" c:timeUnit-ref="SECONDS" />

收件人:

<bean id="grantingTicketExpirationPolicy" class="org.jasig.cas.ticket.support.TicketGrantingTicketExpirationPolicy"
      c:maxTimeToLive="${tgt.maxTimeToLiveInSeconds:32400}" c:timeToKill="${tgt.timeToKillInSeconds:32400}" c:timeUnit-ref="SECONDS" />

我哪里出错了?

【问题讨论】:

  • 那么,如果您不进行任何更改会发生什么?那它有用吗?
  • 感谢@Hille (+1) - 这是 CAS,所以它使用 Maven Overlay。如果我不提供 XML Spring Beans 文件,它将使用默认值。如果我提供自己的文件,那么它必须定义默认支持的所有 bean。

标签: java spring maven configuration spring-bean


【解决方案1】:

带有您正在使用的参数的构造函数可能不存在。查看TicketGrantingTicketExpirationPolicy 中可用的构造函数并进行相应调整。

【讨论】:

  • 我做到了 - 这就是我发布链接的原因。我的问题是:我正在使用提供的构造函数,那么这里出了什么问题?
猜你喜欢
  • 2017-08-15
  • 2020-06-20
  • 1970-01-01
  • 1970-01-01
  • 2011-01-05
  • 2016-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多