繁体   English   中英

Websockets返回状态500错误的Java Spring Boot项目

[英]Java Spring Boot project with Websockets returning status 500 error

我是一名学生,正在学习如何使用Spring Boot来构建Web应用程序。 我有一个正在尝试使用websockets的项目。

尝试连接到已部署应用程序上的聊天时遇到500状态错误。

我已经在这里部署了我的项目。 要进行测试,请使用以下登录名:gohan@gohan.com / password

当我通过Spring Tool Suite在自己的计算机上托管应用程序时,聊天功能将完美无缺。 尝试连接到聊天时,仅在我的EC2 Ubuntu Server 16.04 LTS(HVM)实例上遇到此500级错误。

我已经遵循了聊天应用程序的以下教程: https://www.callicoder.com/spring-boot-websocket-chat-example/

这是我的websocket配置文件:

package com.web.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.messaging.simp.config.MessageBrokerRegistry;
import org.springframework.web.socket.config.annotation.*;

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {

@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
    registry.addEndpoint("/ws").setAllowedOrigins("*").withSockJS();
}

@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
    registry.setApplicationDestinationPrefixes("/app");
    registry.enableSimpleBroker("/channel");
}
}

有人可以向我解释为什么使用websockets的应用程序在本地托管时运行正常,而在部署时却运行不正常吗?

此外,有人可以提供一种解决方案,使我可以理解为什么会出现此问题吗?

我能够使用以下配置来部署和运行您的应用程序(在Tomcat服务器上):

public class Project1Application extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Project1Application.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(Project1Application.class, args);
    }
    /*@Bean
    public EmbeddedServletContainerFactory servletContainer() {
        TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory();
        Connector ajpConnector = new Connector("AJP/1.3");
        ajpConnector.setPort(9090);
        ajpConnector.setSecure(false);
        ajpConnector.setAllowTrace(false);
        ajpConnector.setScheme("http");
        tomcat.addAdditionalTomcatConnectors(ajpConnector);
        return tomcat;
    }*/
}

为了对其进行测试,我只是将其打包到ROOT.war中并将其扔到了webapps文件夹中。 Websockets按预期工作。

希望这可以帮助。

PS。 这篇文章对我很有用。 祝好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM