首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我试图从Azure服务总线接收消息时出错

当我试图从Azure服务总线接收消息时出错
EN

Stack Overflow用户
提问于 2022-10-04 00:38:56
回答 1查看 116关注 0票数 0

我试图在我的SpringBoot应用程序中接收来自Azure的消息,但我面临一些问题。这是我的密码:

代码语言:javascript
复制
Consumer<ServiceBusReceivedMessageContext> processMessage = messageContext -> {
        try {
            System.out.println(messageContext.getMessage().getMessageId());
            // other message processing code
            messageContext.complete();
        } catch (Exception ex) {
            messageContext.abandon();
        }
    };

    Consumer<ServiceBusErrorContext> processError = errorContext -> {
        System.err.println("Error occurred while receiving message: " + errorContext.getException());
    };

    ServiceBusProcessorClient processorClient = new ServiceBusClientBuilder()
            .connectionString(<<CONNECTION_STRING>>)
            .processor()
            .queueName("test")
            .disableAutoComplete()
            .receiveMode(PEEK_LOCK)
            .processMessage(processMessage)
            .processError(processError)
            .disableAutoComplete()
            .buildProcessorClient();

基本上,我使用的是相同的这个例子代码,但在运行应用程序时会收到这个错误:

com.azure.messaging.servicebus.implementation.ServiceBusReactorSession.createConsumer(ServiceBusReactorSession.java:185):java.lang.NoSuchFieldError: CLIENT_RECEIVER_IDENTIFIER at com.azure.messaging.servicebus.implementation.ServiceBusReactorAmqpConnection.lambda$createReceiveLink$3(ServiceBusReactorAmqpConnection.java:183) ~azure-messaging servicebus-7.11.0.jar:7.11.0 at com.azure.messaging.servicebus.implementation.ServiceBusReactorSession.createConsumer(ServiceBusReactorSession.java:99) ~azure-messaging 7.11.0.jar:7.11.0 at com.azure.messaging.servicebus.implementation.ServiceBusReactorAmqpConnection.lambda$createReceiveLink$3(ServiceBusReactorAmqpConnection.java:183)~azure-messaging servicebus-7。11.0.jar:7.11.0在reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:125) ~反应器-核心-3.4.22.jar:3.4.22在reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) ~反应器-3.4.22.jar:3.4.22在reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816) ~反应器-3.4.22.jar:3.4.22在reactor.core.publisher。MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:249) ~反应堆-核心-3.4.22.jar:3.4.22在reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.complete(MonoIgnoreThen.java:292) ~反应堆-核心-3.4.22.jar:3.4.22在reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onNext(MonoIgnoreThen.java:187) ~反应堆-3.4.22.jar:3.4.22在reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:236) ~反应堆-核心-3.4。22. reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) ~反应堆:3.4.22-核心-3.4.22.jar:3.4.22在reactor.core.publisher.SerializedSubscriber.onComplete(SerializedSubscriber.java:146) ~反应堆-3.4.22.jar:3.4.22在reactor.core.publisher.SerializedSubscriber.onComplete(SerializedSubscriber.java:146) ~反应堆-3.4.22.jar:3.4.22在reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.reactor.core.publisher.MonoNext$NextSubscriber.onComplete(MonoNext.java:102) - reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:83) -3.4.22.jar:3.4.22:3.4.22-3.4.22.jar:3.4.22-3.4.22- reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.onNext(FluxFilterFuseable.java:118) -核心-3.4.22。jar:3.4.22在reactor.core.publisher.FluxReplay$SizeBoundReplayBuffer.replayNormal(FluxReplay.java:877) ~反应堆-3.4.22.jar:3.4.22在reactor.core.publisher.FluxReplay$SizeBoundReplayBuffer.replay(FluxReplay.java:965) ~反应堆-3.4.22.jar:3.4.22在reactor.core.publisher.FluxReplay$ReplaySubscriber.onNext(FluxReplay.java:1344) ~反应堆-3.4.22.jar:3.4.22在reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:200) ~反应堆-3.4.22.jar:3.4.22 reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) ~反应堆-3.4.22.jar:3.4.22-3.4.22.jar:3.4.22.jar:3.4.22在reactor.core.publisher.FluxDistinctUntilChanged$DistinctUntilChangedSubscriber.tryOnNext(FluxDistinctUntilChanged.java:149) ~反应堆-3.4.22.jar:3.4.22.jar:3.4.22在reactor.core.publisher.FluxDistinctUntilChanged$DistinctUntilChangedSubscriber.onNext(FluxDistinctUntilChanged.java:102) ~反应堆-核心-3.4.22.jar:3.4.22在reactor.core.publisher.FluxReplay$SizeBoundReplayBuffer.replayNormal(FluxReplay.java:877) ~反应堆-3.4.22.jar:3.4.22在reactor.core.publisher.FluxReplay$SizeBoundReplayBuffer.replay(FluxReplay.java:965) ~反应堆-3.4.22.jar:3.4.22在reactor.core.publisher.ReplayProcessor.tryEmitNext(ReplayProcessor.爪哇:508)反应堆-核心-3.4.22.jar:3.4.22在reactor.core.publisher.SinkManySerialized.tryEmitNext(SinkManySerialized.java:100) ~反应堆-3.4.22.jar:3.4.22在reactor.core.publisher.InternalManySink.emitNext(InternalManySink.java:27) ~反应堆-3.4.22.jar:3.4.22.jar:3.4.22在com.azure.core.amqp.implementation.handler.Handler.onNext(Handler.java:89) ~蔚蓝-核心-amqp-2。5.2.jar:2.5.2在com.azure.core.amqp.implementation.handler.SessionHandler.onSessionRemoteOpen(SessionHandler.java:87) ~azure-核-AMQP-2.5.2.jar:2.5.2在org.apache.qpid.proton.engine.BaseHandler.handle(BaseHandler.java:146) ~质子-j-0.33.6.jar:na在org.apache.qpid.proton.engine.impl.EventImpl.dispatch(EventImpl.java:108) ~质子-j-0.33.6.在org.apache.qpid.proton.reactor.impl.ReactorImpl.dispatch(ReactorImpl.java:324) ~质子-j-0.33.6.jar:na在org.apache.qpid.proton.reactor.impl.ReactorImpl.process(ReactorImpl.java:291) ~质子-j-0.33.6.jar:na在com.azure.core.amqp.implementation.ReactorExecutor.run(ReactorExecutor.java:91) ~蔚蓝-核-AMQP-2.5.2.jar:2.5.2在reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) ~反应堆-核心-3.4.22.jar:3.4.22在reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) ~反应堆-3.4.22.jar:3.4.22在java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~na:na在java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~na:na在java.base/java.util。concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~na:na在java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~na:na在java.base/java.lang.Thread.run(Thread.java:834) ~na:an

这很奇怪,因为当我尝试使用peekMessage函数时,它是工作的,但是当我尝试使用receiveMessages或使用ProcessorClient的这种方法时,它会抛出错误。我没有找到关于这个错误的任何东西,我不知道它是否是我必须设置的属性。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-04 11:16:27

显然,它与te包版本有关,以前我使用的是:

代码语言:javascript
复制
    <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-messaging-servicebus</artifactId>
        <version>7.10.1</version>
    </dependency>

当我回滚到以前的版本(7.10.1)时,它开始正常工作,我不知道是否存在兼容性问题,但现在它已经正常工作了。

谢谢。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73942082

复制
相关文章

相似问题

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