2013-06-05 9 views
0

У нас была проблема с нашим приложением CometD/Gigaspaces, создающим дубликаты экземпляров сервера Bayeux. См. Мой предыдущий вопрос here. После изучения этой проблемы с Gigaspaces выясняется, что каждый компонент, определенный в нашем Контекстном файле приложения, создавался дважды как . GigaSpaces имеет специальную обработку для файлов контекста приложения, называемых PU.XML. Мы решили эту проблему, переименовав файл PU.XML, но проблема , которую мы имеем сейчас, состоит в том, что мы не получаем никаких данных на стороне клиента и получаем следующую ошибку: «NetworkError: 400 Unknown Bayeux Transport - http://localhost:9292/cometd».Ошибка конфигурации сервера Bayeux

Ранее, когда приложение создало дублирующий экземпляр сервера Bayeux, мы установили обходной путь для завершения первого экземпляра потока, на котором работал сервер Bayeux, и в результате мы смогли опубликовать данные на наших каналах с использованием веб-сокетов, которые мы сконфигурировали в текстовом файле приложения .

Не могли бы вы взглянуть на нашу текущую конфигурацию и сообщить мне, есть ли альтернативное решение для настройки и экспорта сервера Bayeux правильно с помощью Spring? Возможно ли, что bee beee не экспортируется правильно или если он слишком поздно экспортируется?

Я разместил наши обновленные конфигурации Web.XML и контекста приложений ниже. CometD Version/Jars в нашем POM.XML такие же, как и мой предыдущий пост. Если вам нужна дополнительная информация. пожалуйста, дай мне знать.

Текущий 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> 

ответ

0

код вы вывесили правильно и практически идентичен испытываемого в настоящее время CometD см here и here ,

У вас есть что-то еще, и отладочные журналы на клиенте и сервере помогут вам понять.