2013-06-05 4 views
0

Nous avons eu un problème avec notre application CometD/Gigaspaces créant une instance dupliquée du serveur Bayeux. Voir ma question précédente publiée here. Après avoir étudié ce problème avec Gigaspaces, il s'avère que chaque bean défini dans notre fichier de contexte d'application était créé deux fois en tant que GigaSpaces a un traitement spécial pour les fichiers de contexte d'application appelé PU.XML. Nous avons résolu ce problème en renommant le fichier PU.XML mais le problème que nous avons maintenant est que nous ne recevons aucune donnée côté client et que nous recevons l'erreur suivante "NetworkError: 400 Inconnu Bayeux Transport - http://localhost:9292/cometd". Auparavant, lorsque l'application créait une instance dupliquée du serveur Bayeux, nous avons mis en place une solution de contournement pour terminer la première instance du thread sur lequel le serveur Bayeux s'exécutait et, par conséquent, nous étions en mesure de publier des données. sur nos canaux en utilisant Web Sockets que nous avons configuré dans le fichier de contexte d'application . Pourriez-vous jeter un coup d'œil à notre configuration actuelle et me dire s'il existe une solution alternative pour configurer et exporter correctement le serveur Bayeux en utilisant Spring? Est-il possible que le haricot de Bayeux ne soit pas exporté correctement ou s'il est exporté trop tard?Configuration du serveur Bayeux Problème

J'ai posté nos configurations Web.XML et Application Context mises à jour ci-dessous. La version CometD/Jars dans notre POM.XML sont les mêmes que mon post précédent. Si vous avez besoin de plus d'informations. s'il vous plaît, faites-moi savoir.

Web.xml actuel:

<?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> 

actuel 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> 

Répondre

0

Le code affiché est correct et pratiquement identique au présent test dans cometd, voir here et here .

Vous avez autre chose en cours, et les journaux de débogage sur le client et le serveur vous aideront à comprendre.