2010-07-26 30 views
1

我總是能得到它工作時,參考了其他Spring上下文XML文件的bean,但這次是不工作:豆參考兩個Spring配置方面的XML文件

springapp-servlet.xml中:

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

應用的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" />   

但我仍然收到此錯誤(即使沒有別名):

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

回答

3

application-context.xml豆子(這是由Web應用程序「擁有」)無法看到springapp-servlet.xml豆(這是「擁有」由servlet)。然而,servlet bean可以看到webapp bean。

你需要讓有來自application-context.xmlspringapp-servlet.xml

+0

明確的答案。謝謝 – Michel 2010-07-26 11:55:45

0

沒有引用好像你在呼喚「應用程序的context.xml」應該改名爲「springapp-security.xml文件」重新安排你的豆。那麼爲什麼Spring控制器bean應該被移動到'springapp-servlet.xml'更爲明顯。