2015-02-02 4 views
0

У меня есть следующие Spring Bean определены: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" /> 

To:

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

Где я Я ошибаюсь?

+1

Итак, что произойдет, если вы ничего не измените? Так ли это работает? – Hille

+0

Спасибо @Hille (+1) - это CAS, поэтому он использует Maven Overlay. Если я не предоставил файл Spring Spring Beans, он будет использовать значение по умолчанию. Если я предоставляю свой собственный файл, он должен определить все компоненты, поддерживаемые по умолчанию. – smeeb

ответ

-1

Конструктор с параметрами, которые вы используете, может и не существовать. Посмотрите на TicketGrantingTicketExpirationPolicy для доступных конструкторов и отрегулируйте соответствующим образом.

+0

Я сделал - вот почему я разместил ссылку на него. Мой вопрос: я использую предоставленный конструктор, так что здесь происходит не так? – smeeb

Смежные вопросы