2010-10-29 49 views
3

我有一个Spring MVC Web应用程序,它通过一个控制器类(用@Controller注释)提供REST风格的Web服务,该类有方法通过@RequestMapping注释映射到特定的请求类型和签名。Spring MVC:REST风格的Web服务+ BlazeDS可以在同一个Web应用程序中集成吗?

我试图通过1)将HttpFlexSession监听器添加到web.xml中,2)将flex:message-broker和flex:remoting-destination声明添加到我的Spring应用程序上下文中配置文件,以及3)添加通用/WEB-INF/flex/services-config.xml。

上面的BlazeDS集成步骤似乎已融合了我的RESTful Web服务,因为看起来请求不再被路由到控制器方法。

它甚至有可能做到这一点,即有一个Web应用程序1)通过请求映射控制器方法服务HTTP请求,2)通过BlazeDS服务为远程对象方法调用(即从Flex客户端)提供服务?如果是的话,谁能告诉我可能是我做错了什么?

在此先感谢您的帮助。

回答

4

是的,这是可能的,但它需要一点额外的配置。

基本上你需要创建两个独立的调度程序,每个调度程序都有不同的路径。

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>/WEB-INF/applicationContext.xml</param-value> 
</context-param> 
<servlet> 
    <name>flex</name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet> 
    <name>spring-mvc</name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>flex</servlet-name> 
    <url-pattern>/messagebroker/*</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>spring-mvc</servlet-name> 
    <url-pattern>/app/*</url-pattern> 
</servlet-mapping> 

现在要求到http://yourapp/app/somewhere被路由到Spring MVC的,并http://yourapp/messagebroker请求通过BlazeDS的路由。

此外,你需要你的Spring上下文文件拆分为三:

  • 一个共同的背景下(在上面的例子中名为applicationContext.xml
  • 一个用于Spring MVC的(在上面提到spring-mvc-servlet.xml例如)
  • 一个用于FLEX(在上述例子中命名flex-servlet.xml)从SPR

退房this section ing/BlazeDS文档获取更多信息。

相关问题