The rocketMQTemplate does not exist TransactionListener
rocketmq-starter版本:2.2.1
发送的代码:
@Test
public void test1() throws Exception {
// 事务id
String transactionId = UUID.randomUUID().toString();
info(">>> 发送半消息!transactionId:{}", transactionId);
// 发送事务消息
TransactionSendResult sendResult = mqTemplate.sendMessageInTransaction(
"topic-3_dev:tag1"
// 给消费者的参数
, MessageBuilder.withPayload(1)
.setHeader(RocketMQHeaders.TRANSACTION_ID, transactionId)
.build()
// 给本地事务的参数
, 2
);
info(">>> 发送半消息结果:{}", toJson(sendResult));
}
在测试rocketmq事务消息时,创建了一个事务监听器,使用默认的RocketMQTemplate实例,在junit中测试消息发送时,报如题错误!
花了半天时间,找了很多文章对比发送的代码,都没有找到原因。
后来,我就怀疑是junit的问题。就把发送的代码放到Controller中运行,结果就成功了。
junit用来测试确实方便,但毕竟是模拟的运行环境,和真实运行环境还是会有区别,下次再遇到类似诡异的问题,在junit外测试一下,也许就成功了!

浙公网安备 33010602011771号