У нас была проблема с нашим приложением 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>