Ошибка:WebLogic 12: WebSocket квитирование excetion (500): Асинхронный-поддержка отключена
org.springframework.web.socket.server.HandshakeFailureException: Ошибка во время квитирования: http://2.12.85.0:6/eto/tvoy; вложенное исключение java.lang.IllegalStateException: Асинхронный-поддержка отключена по этому запросу: weblogic.servlet.internal.ServletRequestImpl
Сервер: WebLogic 12. Это появляется, когда я пытаюсь подключиться к WebSocket.
Мой web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:applicationContext.xml
</param-value>
</context-param>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!--Позволяет работать с русскими символами-->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter>
<filter-name>AFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
<async-supported>true</async-supported>
</filter>
<filter-mapping>
<filter-name>AFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
Мой webSocketConfig:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.web.socket.WebSocketHandler;
import org.springframework.web.socket.config.annotation.EnableWebSocket;
import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;
@Configuration
@EnableWebSocket
@EnableAsync
public class WebSocketConfig implements WebSocketConfigurer {
private static final Logger log = LoggerFactory.getLogger("webSocketLogger");
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
log.error("registerWebSocketHandlers");
registry.addHandler(webSocketHandler(), "/chat").setAllowedOrigins("*");
}
@Bean
public WebSocketHandler webSocketHandler() {
return new workspace.websocket.controller.WebSocketHandler();
}
}
Мой WebSocket обработчик:
public class WebSocketHandler implements org.springframework.web.socket.WebSocketHandler {
private static final Logger log = LoggerFactory.getLogger("webSocketLogger");
@Override
public void afterConnectionEstablished(WebSocketSession webSocketSession) throws Exception {
}
@Override
public void handleMessage(WebSocketSession webSocketSession, WebSocketMessage<?> webSocketMessage) throws Exception {
}
@Override
public void handleTransportError(WebSocketSession webSocketSession, Throwable throwable) throws Exception {
log.error("transport error", throwable);
}
@Override
public void afterConnectionClosed(WebSocketSession webSocketSession, CloseStatus closeStatus) throws Exception {
}
@Override
public boolean supportsPartialMessages() {
return false;
}
}
Что я должен делать?
Thx! И это: public void registerWebSocketHandlers (реестр WebSocketHandlerRegistry) { log.error ("registerWebSocketHandlers"); registry.addHandler (webSocketHandler(), "/ чат") .setAllowedOrigins ("*") .setHandshakeHandler (новый DefaultHandshakeHandler (новый WebLogicRequestUpgradeStrategy())) ; } – Desp