Java 我能';在spring boot中使用google pubsub仿真器发送消息

Java 我能';在spring boot中使用google pubsub仿真器发送消息,java,spring-boot,google-cloud-platform,google-cloud-pubsub,Java,Spring Boot,Google Cloud Platform,Google Cloud Pubsub,我正在尝试使用pubsub的模拟器发送推送消息,我也在使用spring boot,这是我的配置: 依赖关系: <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-gcp-starter-pubsub</artifactId> </dependency> 当然,我已经将PUBSUB_EMULATO

我正在尝试使用pubsub的模拟器发送推送消息,我也在使用spring boot,这是我的配置:

依赖关系:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-gcp-starter-pubsub</artifactId>
</dependency>
当然,我已经将PUBSUB_EMULATOR_HOST系统变量设置为localhost:8085,模拟器在哪里运行

我创建了一个用于测试的rest控制器:

  • 用于发送推送消息
我已经在emulator中创建了我的主题和订阅,我遵循了以下教程:

我在emulator中为get push message设置端点“pushtest”,使用以下命令:

python subscriber.py PUBSUB_PROJECT_ID create-push TOPIC_ID SUBSCRIPTION_ID PUSH_ENDPOINT
但是当我运行测试时,没有达到“/pushtest”端点,我得到了以下错误:

任务java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask@265d5d05 [未完成,任务=java.util.concurrent.Executors$RunnableAdapter@a8c8be3 [Wrapped task=com.google.common.util.concurrent。TrustedListenableFutureTask@1a53c57c [status=PENDING,info=[task=[running=[尚未启动],com.google.api.gax.rpc。AttemptCallable@3866e1d0]]]]] 已从java.util.concurrent中拒绝。ScheduledThreadPoolExecutor@3f34809a [已终止,池大小=0,活动线程=0,排队任务=0,已完成任务=1]

为了确保仿真器运行正常,我将使用以下命令在python中运行测试:

python publisher.py PUBSUB_PROJECT_ID publish TOPIC_ID
我在“pushtest”端点中正确地获取消息

我不知道为什么对我的戏弄感到抱歉

谢谢你的帮助。

我发现了问题

在bean中只注释这一行

通道关闭()

哈哈,很简单

@PostMapping("/pushtest")
    public String pushTest(@RequestBody CloudPubSubPushMessage request) {
        System.out.println( "------> message received: " + decode(request.getMessage().getData()) );
        return request.toString();
    }
python subscriber.py PUBSUB_PROJECT_ID create-push TOPIC_ID SUBSCRIPTION_ID PUSH_ENDPOINT
python publisher.py PUBSUB_PROJECT_ID publish TOPIC_ID