java - spring boot+websocket+stomp+rabbitmq TCP连接失败

标签 java spring spring-boot rabbitmq stomp

我正在使用 STOMP 和rabbitmq 创建一个 spring boot websocket 应用程序。我已经在windows中安装了erlang服务器和rabbitmq。启动rabbitmq-plugins.bat。但我在尝试启动应用程序时收到以下错误。我还无法登录rabbitMq。如果我可以提供任何其他信息,请告诉我。

2020-03-11 17:21:21.076  INFO 4528 --- [           main] c.h.e.a.EnterprisedashboardApplication   : Started EnterprisedashboardApplication in 28.562 seconds (JVM running for 30.314)
2020-03-11 17:21:23.058  INFO 4528 --- [ient-loop-nio-1] o.s.m.s.s.StompBrokerRelayMessageHandler : TCP connection failure in session _system_: Failed to connect: Connection refused: no further information: /127.0.0.1:61613

io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: /127.0.0.1:61613
Caused by: java.net.ConnectException: Connection refused: no further information
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[na:1.8.0_181]
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717) ~[na:1.8.0_181]
    at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:330) ~[netty-transport-4.1.45.Final.jar:4.1.45.Final]
    at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334) ~[netty-transport-4.1.45.Final.jar:4.1.45.Final]
    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:702) ~[netty-transport-4.1.45.Final.jar:4.1.45.Final]
    at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:650) ~[netty-transport-4.1.45.Final.jar:4.1.45.Final]
    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:576) ~[netty-transport-4.1.45.Final.jar:4.1.45.Final]
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493) ~[netty-transport-4.1.45.Final.jar:4.1.45.Final]
    at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) ~[netty-common-4.1.45.Final.jar:4.1.45.Final]
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.45.Final.jar:4.1.45.Final]
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.45.Final.jar:4.1.45.Final]
    at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_181]

构建.gradle

plugins {
    id 'org.springframework.boot' version '2.2.5.RELEASE'
    id 'io.spring.dependency-management' version '1.0.9.RELEASE'
    id 'java'
}
group = 'com.hyb.enterprisedashboard'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

repositories {
            mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'org.springframework.boot:spring-boot-starter-security'
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.springframework.boot:spring-boot-starter-websocket'
    implementation 'org.springframework.boot:spring-boot-starter-amqp'
    compile ('com.fasterxml.jackson.core:jackson-databind:2.9.8')
    compile group: 'org.springframework.boot', name: 'spring-boot-starter-reactor-netty'

    testImplementation('org.springframework.boot:spring-boot-starter-test') {
        exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
    }
    testImplementation 'org.springframework.security:spring-security-test'
    testImplementation 'org.springframework.amqp:spring-rabbit-test'

}

test {
    useJUnitPlatform()
}

WebSocketBrokerConfig.java

package com.heb.enterprisedashboard.api.websocket;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Configuration;
import org.springframework.messaging.simp.config.MessageBrokerRegistry;
import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;
import org.springframework.web.socket.config.annotation.StompEndpointRegistry;
import org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer;

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketBrokerConfig implements WebSocketMessageBrokerConfigurer {

    private static final Logger log = LoggerFactory.getLogger(WebSocketBrokerConfig.class);

    @Override
    public void configureMessageBroker(MessageBrokerRegistry config) {

        config.setApplicationDestinationPrefixes("/app")
          .enableStompBrokerRelay("/topic","/queue")
          .setRelayHost("127.0.0.1")
          .setRelayPort(61613)
          .setClientLogin("guest")
          .setClientPasscode("guest");
    }

    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) {

        registry.addEndpoint("/dashboardsocket")
            .withSockJS();
    }
}

====更新=== 我已经以用户身份安装了 erlang 服务器。将使用管理员帐户重新安装。由于我正在办公室计算机上工作,因此需要办公室 IS 支持的中断。如果有帮助的话会更新。

最佳答案

以管理员身份在 Windows 中安装 Erlang 服务器并解决了该问题。

关于java - spring boot+websocket+stomp+rabbitmq TCP连接失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60636292/

相关文章:

java - 如何从 testng 报告中获取控制台输出?

java - 从依赖项中仅导入几个类

java - Spock-Spring - 如何控制围绕数据驱动测试的事务何时被回滚?

测试中的 Hibernate OnDelete 级联不起作用

spring-boot - Spring/RabbitMQ 教程的 Docker 镜像导致连接被拒绝

java - 如何将 HttpSession 从 WildFly 外部化到 Redis? (不包括 Spring session )

java - 具有可为 nillable 根的 JAXB

java - 以 int 方法返回 'default' 传递给 switch

java - 使用 Keycloak 保护 Spring Cloud 网关

Spring 单元测试 - NestedServletException 而不是自定义异常