Spring Websockets в Glassfish - ошибка во время рукопожатия WebSocket: отправлено непустой заголовок «Sec-WebSocket-Protocol», но ответа не получено - PullRequest
1 голос
/ 02 мая 2019

В настоящее время я пытаюсь реализовать 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

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'
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...