1

RSocket starter を使用して springboot アプリケーション サンプルを選択するだけです。ここに画像の説明を入力 ビルドしてから、実行可能な jar を実行すると、次のログが得られます。

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: 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コントローラーを追加しようとしました:

@Controller
public class DemoController {

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

}

同じ結果です^^

SpringBoot で RSocket を使用している人は、Springboot スレッドを強制的に待機させる「美しい」方法を見つけていますか?

4

1 に答える 1