Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 云发布/订阅接收器中未接收到消息_Java_Spring Boot_Google Cloud Platform_Google Cloud Pubsub - Fatal编程技术网

Java 云发布/订阅接收器中未接收到消息

Java 云发布/订阅接收器中未接收到消息,java,spring-boot,google-cloud-platform,google-cloud-pubsub,Java,Spring Boot,Google Cloud Platform,Google Cloud Pubsub,我有一个SpringBoot应用程序,在其中我通过在应用程序启动时传递订阅id来创建订阅服务器 import com.google.cloud.pubsub.v1.MessageReceiver; 导入com.google.cloud.pubsub.v1.Subscriber; 导入com.google.pubsub.v1.ProjectSubscriptionName; ... ... 公共无效startAndWait(){ ProjectSubscriptionName subscripti

我有一个SpringBoot应用程序,在其中我通过在应用程序启动时传递订阅id来创建订阅服务器

import com.google.cloud.pubsub.v1.MessageReceiver;
导入com.google.cloud.pubsub.v1.Subscriber;
导入com.google.pubsub.v1.ProjectSubscriptionName;
...
...
公共无效startAndWait(){
ProjectSubscriptionName subscriptionName=ProjectSubscriptionName.of(projectName,subscriptionId);
Subscriber=Subscriber.newBuilder(subscriptionName,receiver.build();
log.log(Level.INFO,“Created Subscriber:+subscriptionName);//我在服务启动时收到此日志记录程序消息
subscriber.startAsync();
}
以下是在上述代码中初始化时传递给此订阅服务器的接收器代码

import com.google.cloud.pubsub.v1.AckReplyConsumer;
导入com.google.cloud.pubsub.v1.MessageReceiver;
导入com.google.pubsub.v1.PubsubMessage;
..
..
@日志
@组成部分
@可配置
公共类子MessageReceiver实现MessageReceiver{
..
..
@凌驾
public void receiveMessage(PubsubMessage消息,AckReplyConsumer消费者){
试一试{
processMessage(消息);
}捕获(IOE异常){
log.log(Level.SEVERE,“检索消息内容失败”);
}捕获(例外e){
log.log(Level.SEVERE,“触发规则失败”);
}
consumer.ack();
}
我尝试过-手动删除并再次创建订阅,手动发布关于该主题的多条消息,并验证订阅是否在谷歌云控制台上收到这些消息。 唯一的问题是客户端库中的receiveMessage方法无法获取消息! 我已验证没有其他订阅服务器具有我正在使用的相同订阅id(在任何其他环境中也没有) 我验证了消息队列中没有未确认的消息

我希望在上面提到的processMessage方法中打印一些记录器,或者当我将调试器放在这个方法中时,每当消息到达时,调试器应该停止在调试指针处


请支持或发布任何想法!TIA!

代码中没有任何更改,但我能够使用降级版本的google pub/sub maven library使其正常工作


com.google.cloud
谷歌云pubsub
1.56.0
现在,对于给定主题的所有消息,它都能正常工作。
希望它能帮助某人。

在processMessage()之前,您是否也尝试过在try块中添加日志语句?除非发生异常,否则您不会希望打印任何现有的打印语句。另外,请确保您已实例化了正确的MessageReceiver。有关订户示例,请参阅以下内容。感谢您的答复,我能够通过降级版本使其正常工作。在回答此问题时进行了更新。它在我的本地版本中有效,但在m中有效你知道为什么会这样吗?@ShalakaDeshpande