首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Springboot 2 RSocket应用程序启动后立即停止,没有错误消息。

Springboot 2 RSocket应用程序启动后立即停止,没有错误消息。
EN

Stack Overflow用户
提问于 2019-12-04 09:07:06
回答 1查看 92关注 0票数 1

我只是使用RSocket初学者选择了一个springboot应用程序示例:

构建,然后运行可运行的jar将给出以下日志:

代码语言:javascript
复制
  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.2.1.RELEASE)

2019-12-04 09:45:20.985  INFO 12928 --- [           main] com.example.DemoApplication         : Starting DemoApplication on XXX with PID 1234 (demo/target/classes started by me in ~/demo)
2019-12-04 09:45:20.987  INFO 12928 --- [           main] com.example.DemoApplication         : No active profile set, falling back to default profiles: default
2019-12-04 09:45:21.761  INFO 12928 --- [           main] com.example.DemoApplication         : Started DemoApplication in 1.172 seconds (JVM running for 2.378)

Process finished with exit code 0

问题是Springboot主线程不需要等待RSocket请求就会立即停止。我想问题是RSocket服务器没有启动,所以我尝试添加一个RSocket控制器,如下所示:

代码语言:javascript
复制
@Controller
public class DemoController {

    @MessageMapping("retreiveSomeData")
    public Mono<Data> retreiveAccount(String criteria) {
        return Mono.just(new Data());
    }

}

相同结果^^

任何使用RSocket和SpringBoot的人都能找到一种“漂亮”的方式来迫使Springboot线程等待?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-05 08:06:37

解决方案是添加一个RSocket配置。

只需添加以下application.yaml

代码语言:javascript
复制
# application.yaml
spring:
  rsocket:
    server:
      port: 7000

然后Netty服务器将在端口7000上启动:

代码语言:javascript
复制
  .   ____          _            __ _ _
  /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
  ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
  \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
  =========|_|==============|___/=/_/_/_/
  :: Spring Boot ::        (v2.2.1.RELEASE)

INFO 4472 --- [           main] com.example.DemoApplication       : Starting DemoApplication on ...
INFO 4472 --- [           main] com.example.DemoApplication       : No active profile set, falling back to default profiles: default
INFO 4472 --- [           main] o.s.b.rsocket.netty.NettyRSocketServer   : Netty RSocket started on port(s): 7000
INFO 4472 --- [           main] com.example.DemoApplication       : Started DemoApplication in 2.704 seconds (JVM running for 3.142)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59172347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档