eclipse中的MessageBroker初始化错误

时间:2014-02-06 08:46:17

标签: java xml spring flex blazeds

  1. 我使用blaze Ds配置弹簧框架工作的flex。         下载火焰Ds.war文件,然后我创建了web dyanmic项目         在eclipse中。
    我在blazeds.war的web内容副本中创建了Web应用程序,META-INF,WEB-INF 将更改下面给出的service-config.xml文件
  2.             

                <services>
                    <service-include file-path="remoting-config.xml" />
                    <service-include file-path="proxy-config.xml" />
                    <service-include file-path="messaging-config.xml" /> 
    
                    <default-channels> 
                    <channel ref ="my-amf" />
                    </default-channels> 
    
                    <!-- 
                     <destination id="myService" channels="my-amf">
                            <properties>
                                <source>example.Helloflex</source>
                            </properties>
                        </destination>    -->   
                </services>
    
                <security>
                    <login-command class="flex.messaging.security.TomcatLoginCommand" server="Tomcat"/>
    
                </security>
    
                <channels>
    
                    <channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel">
                        <endpoint url="http://localhost:8080/flex-test/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint"/>
                    </channel-definition>
    
                    <channel-definition id="my-secure-amf" class="mx.messaging.channels.SecureAMFChannel">
                        <endpoint url="https://localhost:8080/flex-test/messagebroker/amfsecure" class="flex.messaging.endpoints.SecureAMFEndpoint"/>
                        <properties>
                            <add-no-cache-headers>false</add-no-cache-headers>
                        </properties>
                    </channel-definition>
    
                    <channel-definition id="my-polling-amf" class="mx.messaging.channels.AMFChannel">
                        <endpoint url="http://localhost:8080/flex-test/messagebroker/amfpolling" class="flex.messaging.endpoints.AMFEndpoint"/>
                        <properties>
                            <polling-enabled>true</polling-enabled>
                            <polling-interval-seconds>4</polling-interval-seconds>
                        </properties>
                    </channel-definition>
    
    
                </channels>
    
                <logging>
                    <target class="flex.messaging.log.ConsoleTarget" level="Error">
                        <properties>
                            <prefix>[BlazeDS] </prefix>
                            <includeDate>false</includeDate>
                            <includeTime>false</includeTime>
                            <includeLevel>false</includeLevel>
                            <includeCategory>false</includeCategory>
                        </properties>
                        <filters>
                            <pattern>Endpoint.*</pattern>
                            <pattern>Service.*</pattern>
                            <pattern>Configuration</pattern>
                        </filters>
                    </target>
                </logging>
    
                <system>
                    <redeploy>
                        <enabled>false</enabled>
    
                    </redeploy>
                </system>
    
            </services-config>
    
            **i was set default channel**
    
            > `<default-channels> 
                    <channel ref ="my-amf" />
                    </default-channels> `
    
            *after i create application-config.xml file , /WEB-INF/spring/application-config.xml*
    
            > `<?xml version="1.0" encoding="UTF-8"?>
            <beans xmlns="http://www.springframework.org/schema/beans"
                xmlns:context="http://www.springframework.org/schema/context"
                xmlns:flex="http://www.springframework.org/schema/flex"
                xmlns:mvc="http://www.springframework.org/schema/mvc"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xsi:schemaLocation="
                    http://www.springframework.org/schema/beans
                    http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
                    http://www.springframework.org/schema/context 
                    http://www.springframework.org/schema/context/spring-context-3.1.xsd
                    http://www.springframework.org/schema/flex 
                    http://www.springframework.org/schema/flex/spring-flex-1.5.xsd
                    http://www.springframework.org/schema/mvc 
                    http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd">
    
    
                    <context:annotation-config></context:annotation-config>
                    <context:component-scan base-package="example"></context:component-scan>
                    <flex:message-broker services-config-path="/WEB-INF/flex/services-config.xml"> </flex:message-broker>
    
             </beans>
            `
    
        **web.xml**
    
        > ` <?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" version="2.5">
    
    
    
          <context-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>
                    /WEB-INF/spring/*-config.xml
                </param-value>
            </context-param>
    
            <filter>
                <filter-name>springSecurityFilterChain</filter-name>
                <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
            </filter>
    
            <filter-mapping>
              <filter-name>springSecurityFilterChain</filter-name>
              <url-pattern>/*</url-pattern>
            </filter-mapping>
    
            <listener>
                <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
            </listener>
    
            <listener>
                <listener-class>flex.messaging.HttpFlexSession</listener-class>
            </listener>
    
            <servlet>
                <servlet-name>messagebroker</servlet-name>
                <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
                <init-param>
                    <param-name>contextConfigLocation</param-name>
                    <param-value></param-value>
                </init-param>
                <load-on-startup>1</load-on-startup>
    
            </servlet>
    
            <servlet-mapping>
                <servlet-name>messagebroker</servlet-name>
                <url-pattern>/messagebroker/*</url-pattern>
            </servlet-mapping>
        </web-app>`
    
    
    
        **java class file **
    
        > ` package example;
    
        import javax.xml.ws.ServiceMode;
    
        import org.springframework.flex.remoting.RemotingDestination;
        import org.springframework.flex.remoting.RemotingInclude;
        import org.springframework.stereotype.Service;
    
    
        @Service("HelloFlexService")
        @RemotingDestination(channels={"my-amf"})
        public class Helloflex {
    
            @RemotingInclude
            public String sayHello(String name)
            {
                return "hello".concat(name);
            }
    
        }`
    

    * 启动服务器后,它会出现404错误,我会发送错误详情*

    >   
    >     SEVERE: Error thrown during MessageBroker initialization
    >     java.lang.NoSuchFieldError: ASYNC_MESSAGE_FILTERS_ELEMENT_CHILDREN
    

1 个答案:

答案 0 :(得分:0)

似乎您正在使用错误版本的jar,因为Spring-Flex-Integration尝试初始化它所期望的字段,但您提供的版本不提供。 看看这篇文章......这里有人遇到类似的问题: http://forum.spring.io/forum/spring-projects/web/flex/90301-nosuchfielderror-async-message-filters-element-children