2010-08-31 70 views
1

我想添加一個過濾器來映射URL中的特定路徑。如何在Spring中添加過濾器(使用BlazeDS)

我的服務器端使用Spring 2.5.x,BlazeDS(servlet)和TomCat服務器。

所以,我的web.xml文件是由這樣的:

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value> 
     /WEB-INF/spring-main-config.xml 
    </param-value> 
</context-param> 

<filter> 
    <filter-name>FacebookOAuthFilter</filter-name> 
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>  
</filter> 

<filter-mapping> 
    <filter-name>FacebookOAuthFilter</filter-name> 
    <url-pattern>/fbauth</url-pattern> 
</filter-mapping> 

<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 

<!-- Spring MVC Servlet (that will route HTTP requests to BlazeDS) --> 
<servlet> 
    <servlet-name>Spring MVC Dispatcher Servlet</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/spring-main-config.xml</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

當我開始我的Tomcat服務器,一個異常被逮住:

[BlazeDS][ERROR] [Configuration] MessageBroker failed to start: Exception: flex.messaging.config.ConfigurationException: MessageBroker already defined from MessageBrokerServlet with init parameter messageBrokerId = '_messageBroker' 
at flex.messaging.MessageBroker.registerMessageBroker(MessageBroker.java:1916) 

你能幫助我嗎?

非常感謝你,

安東尼

回答

0

我相信你在這裏加載不正確的配置文件...

<servlet> 
    <servlet-name>Spring MVC Dispatcher Servlet</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/spring-main-config.xml</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

你alreaded中的前幾行加載/WEB-INF/spring-main-config.xml文件

http://www.springbyexample.org/examples/simple-flex-webapp.html

0

這不是一個真正的Flex或BlazeDS問題,它是Spring的一個更基本的錯誤配置。

您配置了兩個獨立的Spring應用程序上下文,它們都具有相同的一組bean定義(/WEB-INF/spring-main-config.xml)。

<context-param>定義的應用上下文是與webapp關聯的應用上下文。由``定義的app-context與servlet相關聯。

由於您已經向兩者提供了相同的bean文件,它將實例化並初始化同一組bean,並且第二次似乎失敗,因爲MessageBroker已經定義。

您需要將您的bean定義分成兩組,或者只是刪除第一個,然後使用servlet上下文。

相關問題