В настоящее время я пытаюсь реализовать Spring Websockets в Glassfish.Я сделал это до сих пор, но когда я пытаюсь подключиться, сервер не возвращает протокол Sec-WebSocket.В Google Chrome я получаю следующую ошибку:
Error during WebSocket handshake: Sent non-empty 'Sec-WebSocket-Protocol' header but no response was received.
Запрос и ответ как изображение, показанное в Google Chrome:
![enter image description here](https://i.stack.imgur.com/CKV0s.png)
Asклиент Stomp, я использую ng2-stompjs в Angular.
Я пробовал на Tomcat 9.0.17 и WildFly 16, и все работает как положено.
Конфигурация WebSocket:
@Configuration
@EnableWebSocketMessageBroker
@EnableWebSocket
public class WebSocketConfiguration implements WebSocketMessageBrokerConfigurer {
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry
.addEndpoint("/ws")
.setAllowedOrigins("*");
}
@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
registry.setApplicationDestinationPrefixes("/app");
registry.enableSimpleBroker("/topic");
}
}
glassfish-web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
<glassfish-web-app>
<context-root>/monitoring</context-root>
<classloading-delegate>false</classloading-delegate>
<parameter-encoding default-charset="UTF-8"/>
</glassfish-web-app>
build.gradle:
plugins {
id 'org.springframework.boot' version '2.1.4.RELEASE'
id 'java'
id 'war'
}
apply plugin: 'io.spring.dependency-management'
group = 'de.conting'
version = '0.0.1'
sourceCompatibility = '1.8'
repositories {
mavenCentral()
}
configurations {
compile.exclude module: 'spring-boot-starter-tomcat'
compile.exclude group: 'org.apache.tomcat'
}
war {
enabled = true
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-jersey'
implementation 'org.springframework.boot:spring-boot-starter-mail'
implementation 'org.springframework.boot:spring-boot-starter-quartz'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.boot:spring-boot-starter-websocket'
annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
implementation 'org.hibernate:hibernate-core:5.4.2.Final'
implementation 'io.jsonwebtoken:jjwt:0.9.1'
runtimeOnly 'org.postgresql:postgresql'
providedCompile group: 'javax.servlet', name: 'javax.servlet-api', version: '4.0.1'
compileOnly 'org.projectlombok:lombok:1.18.6'
annotationProcessor 'org.projectlombok:lombok:1.18.6'
}