gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 10:51:23 26 4
gpt4 key购买 nike

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

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

我已经部署了我的项目 here 。如需测试,请使用登录名:gohan@gohan.com/密码

当我通过 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 文件夹中。 Websocket 按预期工作。

希望这有帮助。

PS。 This article事实证明对我来说非常有用。祝你好运!

关于Websockets 返回状态 500 错误的 Java Spring Boot 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47803461/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com