Bonjour.
Dans ma webapp (Struts2 + Spring + Acegi + Hibernate)
J'ai l'erreur suivante lors de l'initialisation du contexte de Spring :
En fait je n'ai fait que reprendre la configuration de l'exemple de base pour Spring :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 GRAVE: Exception lors de l'envoi de l'évènement contexte initialisé (context initialized) à l'instance de classe d'écoute (listener) org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'logoutFilter' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Unsatisfied dependency expressed through constructor argument with index 1 of type [org.acegisecurity.ui.logout.LogoutHandler[]]: There are 0 beans of type [[Lorg.acegisecurity.ui.logout.LogoutHandler;] available for autowiring: []. There should have been exactly 1 to be able to autowire constructor of bean 'logoutFilter'. at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:384) at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:120) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:745) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:683) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:388) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:250) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:141)
Or la classe org.acegisecurity.ui.rememberme.TokenBasedRememberMeServices
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 <!-- ACEGI START --> <bean id="filterChainProxy" class="org.acegisecurity.util.FilterChainProxy"> <property name="filterInvocationDefinitionSource"> <value> CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON PATTERN_TYPE_APACHE_ANT /**=httpSessionContextIntegrationFilter,logoutFilter,authenticationProcessingFilter,securityContextHolderAwareRequestFilter,rememberMeProcessingFilter,anonymousProcessingFilter,exceptionTranslationFilter,filterInvocationInterceptor </value> </property> </bean> <bean id="logoutFilter" class="org.acegisecurity.ui.logout.LogoutFilter"> <constructor-arg value="/index.jsp"/> <constructor-arg> <list> <ref bean="rememberMeServices"/> <bean class="org.acegisecurity.ui.logout.SecurityContextLogoutHandler"/> </list> </constructor-arg> </bean> ... <bean id="rememberMeServices" class="org.acegisecurity.ui.rememberme.TokenBasedRememberMeServices"> <property name="userDetailsService" ref="userDetailsService"/> <property name="key" value="TotoEstUnCon"/> </bean> ... <!-- ACEGI STOP -->
implemente bien l'interface org.acegisecurity.ui.logout.LogoutHandler.
Que faut-il préciser à Spring que ce bean implémente bien cette interface ?
[EDIT]
Je suis en mode "autowire"
[/EDIT]
PPDL.
Partager