为了账号安全,请及时绑定邮箱和手机立即绑定

RabbitMq 和 Spring Boot 1.5.8 错误 java.lang.

RabbitMq 和 Spring Boot 1.5.8 错误 java.lang.

泛舟湖上清波郎朗 2021-06-11 18:51:10
目前我使用 spring boot 1.5.8,我想在我的 websocket 中使用rabbitmq。以下代码是我对websocket的配置    @Override    public void configureMessageBroker(MessageBrokerRegistry config) {        config            .enableStompBrokerRelay("/topic", "/queue", "/exchange")            .setRelayHost("localhost")            .setRelayPort(5672)            .setClientLogin("guest")            .setClientPasscode("guest")            .setSystemHeartbeatSendInterval(5000);    }我将以下依赖项添加到我的 gradle 配置中     compile "org.springframework.boot:spring-boot-starter-websocket"     compile("io.projectreactor:reactor-net:2.0.5.RELEASE")     compile("io.projectreactor:reactor-core:2.0.5.RELEASE")     compile("io.netty:netty-all:4.0.33.Final")Spring boot 产生以下堆栈错误Caused by: java.lang.NoClassDefFoundError: reactor/io/codec/Codec    at java.lang.ClassLoader.defineClass1(Native Method)    at java.lang.ClassLoader.defineClass(ClassLoader.java:763)    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)    at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)    at java.net.URLClassLoader.access$100(URLClassLoader.java:73)    at java.net.URLClassLoader$1.run(URLClassLoader.java:368)    at java.net.URLClassLoader$1.run(URLClassLoader.java:362)    at java.security.AccessController.doPrivileged(Native Method)    at java.net.URLClassLoader.findClass(URLClassLoader.java:361)    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)    at org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler.startInternal(StompBrokerRelayMessageHandler.java:388)    at org.springframework.messaging.simp.broker.AbstractBrokerMessageHandler.start(AbstractBrokerMessageHandler.java:164)    at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:175)    ... 17 common frames omitted我不知道我做错了什么。有任何想法吗?
查看完整描述

2 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

我有一个非常罕见的情况。我会解释的。

我使用 IntelliJ 作为 Java 开发的主要 IDE。当我使用右侧面板配置 gradle 插件时,我总是使用刷新依赖项的按钮。这里的奇怪情况是,当我在 IntelliJ 中使用 bootRun 运行 spring boot 时,它总是产生与问题所述相同的错误。我尝试了最后一个用于 bootRepackage jar 的资源。难以置信,这就是解决方案。在 bootRepackage 之后,IntelliJ 识别出新的类 reactor.io.codec.Codec。

因此,如果您使用 IntelliJ 作为主要 IDE,请尝试重新打包,然后可能错误消失了。


查看完整回答
反对 回复 2021-06-17
  • 2 回答
  • 0 关注
  • 147 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信