本帖最后由 guotuoniao 于 2011-04-08 09:41:17 编辑

解决方案 »

  1.   

    Xml代码  
    1.<?xml version="1.0" encoding="UTF-8"?>  
    2.<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    3.    xmlns="http://java.sun.com/xml/ns/javaee"  
    4.    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"  
    5.    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"  
    6.    id="WebApp_ID" version="2.5">  
    7.  
    8.    <display-name>flexweb</display-name>  
    9.    <context-param>  
    10.        <param-name>contextConfigLocation</param-name>  
    11.        <param-value>classpath:applicationContext.xml</param-value>  
    12.    </context-param>  
    13.  
    14.    <!-- The filter for struts2 -->  
    15.    <filter>  
    16.        <filter-name>struts2</filter-name>  
    17.        <filter-class>  
    18.            org.apache.struts2.dispatcher.FilterDispatcher   
    19.        </filter-class>  
    20.    </filter>  
    21.  
    22.    <listener>  
    23.        <listener-class>  
    24.            org.springframework.web.context.ContextLoaderListener   
    25.        </listener-class>  
    26.    </listener>  
    27.    <!-- Http Flex Session attribute and binding listener support -->  
    28.    <!--   
    29.        <listener>  
    30.        <listener-class>flex.messaging.HttpFlexSession</listener-class>  
    31.        </listener>  
    32.    -->  
    33.  
    34.    <!-- MessageBroker Servlet 单独为Flex配置xml-->  
    35.    <servlet>  
    36.        <servlet-name>flex</servlet-name>  
    37.        <servlet-class>  
    38.            org.springframework.web.servlet.DispatcherServlet   
    39.        </servlet-class>  
    40.        <init-param>  
    41.            <param-name>contextConfigLocation</param-name>  
    42.            <param-value>  
    43.                /WEB-INF/classes/flex-application-config.xml   
    44.            </param-value>  
    45.        </init-param>  
    46.        <load-on-startup>1</load-on-startup>  
    47.    </servlet>  
    48.  
    49.    <!-- The filter mapping for struts2 -->  
    50.    <filter-mapping>  
    51.        <filter-name>struts2</filter-name>  
    52.        <url-pattern>/*</url-pattern>  
    53.    </filter-mapping>  
    54.  
    55.    <!--  
    56.    Map all /messagbroker requests to the DispatcherServlet for handling  
    57.    -->  
    58.    <servlet-mapping>  
    59.        <servlet-name>flex</servlet-name>  
    60.        <url-pattern>/messagebroker/*</url-pattern>  
    61.    </servlet-mapping>  
    62.  
    63.    <welcome-file-list>  
    64.        <welcome-file>index.html</welcome-file>  
    65.        <welcome-file>index.jsp</welcome-file>  
    66.    </welcome-file-list>  
    67.</web-app>  
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    id="WebApp_ID" version="2.5"> <display-name>flexweb</display-name>
    <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
    </context-param> <!-- The filter for struts2 -->
    <filter>
    <filter-name>struts2</filter-name>
    <filter-class>
    org.apache.struts2.dispatcher.FilterDispatcher
    </filter-class>
    </filter> <listener>
    <listener-class>
    org.springframework.web.context.ContextLoaderListener
    </listener-class>
    </listener>
    <!-- Http Flex Session attribute and binding listener support -->
    <!--
    <listener>
    <listener-class>flex.messaging.HttpFlexSession</listener-class>
    </listener>
    --> <!-- MessageBroker Servlet 单独为Flex配置xml-->
    <servlet>
    <servlet-name>flex</servlet-name>
    <servlet-class>
    org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <init-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
    /WEB-INF/classes/flex-application-config.xml
    </param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    </servlet> <!-- The filter mapping for struts2 -->
    <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>
      

  2.   

    http://liuqq.iteye.com/blog/463950最下面拷贝看看 祝福
      

  3.   

    按上面的操作有报错
    21:35:12,593 ERROR DispatcherServlet:314 - Context initialization failed
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name '_messageBrokerDefaultHandlerMapping': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '_messageBroker': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: filterChain field is expected to be of type AMFFilterclass flex.messaging.endpoints.amf.AsyncAMFFilter is not assignable to class flex.messaging.endpoints.amf.AMFFilter
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:527)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:442)
    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:458)
    at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:339)
    at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:306)
    at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:127)
    at javax.servlet.GenericServlet.init(GenericServlet.java:212)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1172)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:992)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4371)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:926)
    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:889)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    at org.apache.catalina.core.StandardService.start(StandardService.java:516)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
    Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name '_messageBroker': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: filterChain field is expected to be of type AMFFilterclass flex.messaging.endpoints.amf.AsyncAMFFilter is not assignable to class flex.messaging.endpoints.amf.AMFFilter
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1420)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
    at org.springframework.beans.factory.support.AbstractBeanFactory.isSingleton(AbstractBeanFactory.java:396)
    at org.springframework.context.support.AbstractApplicationContext.isSingleton(AbstractApplicationContext.java:1095)
    at org.springframework.web.servlet.handler.AbstractUrlHandlerMapping.registerHandler(AbstractUrlHandlerMapping.java:382)
    at org.springframework.web.servlet.handler.SimpleUrlHandlerMapping.registerHandlers(SimpleUrlHandlerMapping.java:129)
    at org.springframework.web.servlet.handler.SimpleUrlHandlerMapping.initApplicationContext(SimpleUrlHandlerMapping.java:104)
    at org.springframework.context.support.ApplicationObjectSupport.initApplicationContext(ApplicationObjectSupport.java:119)
    at org.springframework.web.context.support.WebApplicationObjectSupport.initApplicationContext(WebApplicationObjectSupport.java:72)
    at org.springframework.context.support.ApplicationObjectSupport.setApplicationContext(ApplicationObjectSupport.java:73)
    at org.springframework.context.support.ApplicationContextAwareProcessor.invokeAwareInterfaces(ApplicationContextAwareProcessor.java:106)
    at org.springframework.context.support.ApplicationContextAwareProcessor.postProcessBeforeInitialization(ApplicationContextAwareProcessor.java:85)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:394)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1413)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
    ... 40 more
    Caused by: java.lang.IllegalArgumentException: filterChain field is expected to be of type AMFFilterclass flex.messaging.endpoints.amf.AsyncAMFFilter is not assignable to class flex.messaging.endpoints.amf.AMFFilter
    at org.springframework.util.Assert.isAssignable(Assert.java:368)
    at org.springframework.flex.core.EndpointConfigProcessor.fixFilterChain(EndpointConfigProcessor.java:98)
    at org.springframework.flex.core.EndpointConfigProcessor.processAfterStartup(EndpointConfigProcessor.java:69)
    at org.springframework.flex.core.MessageBrokerFactoryBean.processAfterStart(MessageBrokerFactoryBean.java:286)
    at org.springframework.flex.core.MessageBrokerFactoryBean.afterPropertiesSet(MessageBrokerFactoryBean.java:166)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)
    ... 59 more
    我再查查原因