贝叶斯服务器配置问题



我们的CometD/Gigaspaces应用程序在创建Bayeux Server的副本实例时遇到了一个问题。看到我之前的问题张贴在这里。在使用Gigaspaces调查了这个问题之后,我们发现在应用程序上下文文件中定义的每个bean都被创建了两次GigaSpaces对称为PU.XML的应用程序上下文文件有特殊处理。我们通过重命名PU.XML文件解决了这个问题我们现在遇到的问题是,我们没有在客户端接收任何数据,并收到以下错误"NetworkError: 400 Unknown Bayeux Transport - http://localhost:9292/cometd"。

前面,当应用程序创建Bayeux Server的副本实例时,我们设置了一个解决方法来终止第一个实例因此,我们能够使用Web Sockets在我们的通道上发布数据,我们在应用程序上下文文件。

你能看看我们目前的配置,并告诉我是否有一个替代的解决方案来正确配置和导出使用Spring的Bayeux服务器吗?是否有可能Bayeux bean没有正确导出或者导出太晚?

我已经在下面发布了我们更新的Web.XML和应用程序上下文配置。我们的POM.XML中的CometD版本/jar与我之前的帖子相同。如果你需要进一步的信息。请让我知道。

当前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"
    id="WebApp_ID" version="2.5">
    <display-name>CometDApplication</display-name>          
    <servlet>
        <servlet-name>cometd</servlet-name>
        <servlet-class>org.cometd.server.CometdServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>cometd</servlet-name>
        <url-pattern>/cometd/*</url-pattern>
    </servlet-mapping>  
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>  
    <!-- <listener>
        <listener-class>org.openspaces.pu.container.jee.context.ProcessingUnitContextLoaderListener</listener-class>
    </listener>-->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/applicationContext-gigaspaces.xml</param-value>
    </context-param>
</web-app>
当前applicationContext-gigaspaces.XML

:

<bean id="Bayeux" class="org.cometd.server.BayeuxServerImpl"
        init-method="start" destroy-method="stop">
        <property name="options">
            <map>
                <entry key="logLevel" value="0" />
                <entry key="timeout" value="15000" />
            </map>
        </property>
        <property name="transports">
            <list>
                <!-- The order of the following transports dictates the type of transport 
                    used i.e. Web Sockets then JsonTransport (a.k.a long-polling) -->
                <bean id="websocketTransport" class="org.cometd.websocket.server.WebSocketTransport">
                    <constructor-arg ref="Bayeux" />
                </bean>
                <bean id="jsonTransport" class="org.cometd.server.transport.JSONTransport">
                    <constructor-arg ref="Bayeux" />
                </bean>
                <bean id="jsonpTransport" class="org.cometd.server.transport.JSONPTransport">
                    <constructor-arg ref="Bayeux" />
                </bean>
            </list>
        </property>
    </bean>
    <!-- Export the Bayeux Server to the servlet context via springs ServletContextAttributeExporter -->
    <bean id="ContextExporter"
        class="org.springframework.web.context.support.ServletContextAttributeExporter">
        <property name="attributes">
            <map>
                <entry key="org.cometd.bayeux">
                    <ref local="Bayeux" />
                </entry>
            </map>
        </property>
    </bean>

您发布的代码是正确的,并且几乎与CometD中的测试相同,请参阅这里和这里。

如果你有别的事情发生,那么客户端和服务器上的调试日志将帮助你理解。

相关内容

  • 没有找到相关文章

最新更新