Java 如何使用ReactorCloudFoundryClient启动CloudFoundry应用程序?

Java 如何使用ReactorCloudFoundryClient启动CloudFoundry应用程序?,java,cloud-foundry,Java,Cloud Foundry,我使用StartApplicationRequest创建了一个启动应用程序的示例请求,如下所示: StartApplicationRequest request = StartApplicationRequest.builder() .applicationId("test-app-name") .build(); 然后,我使用ReactorCloudFoundryClient启动应用程序,如下所示: cloudFoundryCl

我使用
StartApplicationRequest
创建了一个启动应用程序的示例请求,如下所示:

StartApplicationRequest request = StartApplicationRequest.builder()
                .applicationId("test-app-name")
                .build();
然后,我使用
ReactorCloudFoundryClient
启动应用程序,如下所示:

cloudFoundryClient.applicationsV3().start(请求)

但是我的测试应用程序
测试应用程序名称
尚未启动。我使用的是最新的Java CF客户端版本(v4.5.0版本),但没有找到启动应用程序的方法

非常令人惊讶的是,似乎正在使用以下代码:

cfstatus=cfClient.startApplication(“测试应用程序名称”)//启动应用程序

cfstatus=cfClient.stopplication(“测试应用程序名称”)//停止应用程序

cfstatus=cfClient.restartApplication(“测试应用程序名称”)//停止应用程序

我想对最新的CF客户端库也这么做,但我看不到任何有用的参考资料。我参考了CloudFoundry官方Github repo编写的测试用例。在查阅了大量文档后,我获得了以下代码:

StartApplicationRequest request = StartApplicationRequest.builder()
                    .applicationId("test-app-name")
                    .build();
cloudFoundryClient.applicationsV3().start(请求)


请注意,
cloudFoundryClient
ReactorCloudFoundryClient
实例,因为最新库不支持与过时代码一起使用的客户端类。我想用最新的库执行所有操作(启动/停止/重新启动)。上面的代码不起作用。

这里有几件事

  • 使用基于reactor的客户端,对
    cloudFoundryClient.applicationsV3().start(request)
    的调用将返回一个
    Mono
    。这不是实际的反应,而是可能的反应。你需要做点什么才能得到回应

    如果您希望类似于原始cf java客户端的行为,可以在
    Mono
    上调用
    .block()
    ,它将等待并变成响应

    例:

  • 第二件事是它是
    .applicationId
    而不是
    applicationName
    。您需要传入应用程序guid,而不是名称。实际上,你会得到一个404,说这个应用程序不存在。您可以使用客户端获取guid,也可以改用
    CloudFoundryOperations
    (请参见#3)

  • 这个。一般来说,它更易于使用,并且支持基于名称而不是guid启动应用程序

    例:


  • 嗨,丹尼尔。我想知道你是否还没有人编辑你的帖子,让它们少一些对话。Stack Overflow旨在成为技术写作的存储库,因此“希望有所帮助”之类的短语往往会被劝阻和/或删除。我通常不会提及,但你有200多个。你介意以后不要再加这些吗?谢谢大家!@哈弗-我感谢你的观点和反馈。我会考虑的。如果我是诚实的,这是我尝试友好的方式,并为我的帖子增加一些人性化。如果这是错误的,那么我可能是在错误的论坛上贡献知识。我希望你也能理解我的观点。谢谢你的回复。有几个关于元堆栈溢出的讨论代表了社区的立场。这是一个很好的开始,但有很多。我个人的观点是,技术写作本身并不是不友好的,它只是简洁而已。人们不会在阅读学术论文或百科全书文章时认为它不友好——这只是每种媒体的预期风格。
    client.applicationsV3()
        .start(StartApplicationRequest.builder()
                    .applicationId("test-app-name")
                    .build())
        .block()
    
    ops.applications()
       .start(StartApplicationRequest.builder()
                 .name("test-app-name").build())
       .block();