views:

58

answers:

2

I always get it worked when reference to a bean in an other Spring context XML file but this time is doesn't work:

springapp-servlet.xml:

 <!-- Spring Controllers -->
<b:bean id="loginSpringController" class="com.foo.bar.controllers.spring.LoginController"/>
<b:alias name="loginSpringController" alias="loginSprController"/>   

application-context.xml

<!-- Custom AuthenticationProcessingFilter with Callbacks -->
<authentication-manager alias="authenticationManagerAlias"/>
<b:bean id="authenticationProcessingFilter" name="authenticationProcessingFilter" class="com.foo.bar.support.event.CustomAuthenticationProcessingFilter"> 
<b:property name="authenticationManager" ref="authenticationManagerAlias"/>
<b:property name="authenticationFailureUrl" value="/login.do?1=1"/>
<b:property name="filterProcessesUrl" value="/j_spring_security_check"/>
<b:property name="callback" ref="successfulAuthenticationCallbackImpl"/>
<b:property name="defaultTargetUrl" value="/index.html"/>
<!-- Reference to the sprint controller -->
<b:property name="loginSpringController"><b:ref bean="loginSprController"/></b:property>
<custom-filter position="AUTHENTICATION_PROCESSING_FILTER" />          

But I still getting this error (even without the alias):

org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'loginSprController' is defined
+2  A: 

The beans in application-context.xml (which is "owned" by the webapp) cannot see the beans in springapp-servlet.xml (which is "owned" by the servlet). The servlets beans can see the webapp beans, however.

You need to rearrange your beans so that there are no references from application-context.xml to springapp-servlet.xml

skaffman
clear answer. thx
michel
A: 

It seems like what you are calling 'application-context.xml' should be renamed to 'springapp-security.xml'. Then it's more obvious why the spring controller bean should be moved to 'springapp-servlet.xml'.

Jatin