簡體   English   中英

具有反應性華麗的 monogodb 的 Pubsub 消息無法創建帶有 session 的 ReactiveTransaction 是 null 錯誤

[英]Pubsub message with reactive panache monogodb failing to create ReactiveTransaction with session is null error

我有一個 quarkus 項目使用反應式華麗連接到 monogdb。

我希望我的方法被包裝在事務中,我當前的代碼大致如下所示:

@Traced
@ApplicationScoped
@Startup
public class MyReceiver implements com.google.cloud.pubsub.v1.MessageRecevier {
    @Override
    @ActivateRequestContext
    public void receiveMessage(PubsubMessage pubsubMessage, AckReplyConsumer ackReplyConsumer) {
        try {
            final String messageStr = pubsubMessage.getData().toStringUtf8();
            final MyMessage messageContent = objectMapper.readValue(messageStr, getTypeReference());
            handleMessage(messageContent).await().indefinitely();

            ackReplyConsumer.ack();
        } catch (Throwable ex) {
            log.warn("{} Message ID: [{}]  on [{}] ", ex.getMessage(), pubsubMessage.getMessageId(), subscriptionName);
            ackReplyConsumer.nack();
        }
    }

    public TypeReference<MyMessage> getTypeReference() { 
      return new TypeReference<>(){};
    }

    @ReactiveTransactional
    public Uni<Void> handleMessage(MyMessage message) {
        // code here is never reached
    }

}

然而,當我嘗試測試我的代碼並收到一條消息時,

我收到此錯誤: java.lang.NullPointerException: Cannot invoke "org.hibernate.reactive.mutiny.Mutiny$Session.withTransaction(java.util.function.Function)" because "session" is null

它發生在代碼嘗試將 go 放入handleMessage時,因此當@ReactiveTransactional的方面被觸發時

我要注意的是什么導致了這個問題,因為我找不到任何可能是問題根源的東西。

目前看來,panache 不支持 mongodb 中的事務,這是此問題的根源。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM