rocketMQ消息中间件,onMessage报错,MessageExt of onessage method is not supported

本地启动不会报错,生产者和消费者都运行的好好的,但是打包之后就不断的报错误,
起初以为是maven出现了问题,但是刷新和重写都不管用,并且打的jar包解压后发现类里
有这个类和方法。最后认为是打包出现问题
解决方式:
pom.xml,将混淆打包注释掉,再研究研究混淆打包,是否可以忽略有关MQ的文件

一:错误
错误如下
2:解决方式
解决

### 如何在 RocketMQ 中实现 `onMessage` 方法 为了实现在 RocketMQ 中的消息监听与消费,在消费者端需创建一个实现了 `RocketMQListener<T>` 接口的类,并重写其中的 `onMessage(T message)` 方法。此方法会在接收到新消息时被自动触发执行。 当定义好消息处理器之后,还需要将其注册到 Spring 的上下文中以便于框架能够识别并管理这些组件。下面是一个具体的例子展示怎样完成这一过程[^1]: ```java import org.springframework.stereotype.Service; import com.alibaba.rocketmq.spring.annotation.RocketMQTransactionListener; import com.alibaba.rocketmq.spring.core.RocketMQLocalTransactionListener; import com.alibaba.rocketmq.spring.core.RocketMQTemplate; import com.alibaba.rocketmq.spring.support.RocketMQUtil; import org.apache.rocketmq.common.message.MessageExt; import org.apache.rocketmq.spring.core.RocketMQListener; @Service public class MyMessageConsumer implements RocketMQListener<String> { @Override public void onMessage(String message) { System.out.println("Received message: " + message); try { // 处理业务逻辑 // 如果成功则正常返回不做任何操作, // 若抛出异常,则认为消费失败,由框架决定是否重新投递该条消息。 } catch (Exception e) { throw new RuntimeException(e); // 抛出自定义异常表示消费失败 } } } ``` 在这个示例中,每当有新的字符串类型(`String`)的消息到达指定的主题(topic),就会调用 `MyMessageConsumer` 类中的 `onMessage()` 函数来进行相应的处理工作。如果一切顺利的话,函数将安静地结束;反之,一旦发生错误(比如数据库连接中断),可以通过捕获异常并向外层传递的方式来通知系统当前这条消息未能得到妥善处置,进而让其有机会再次尝试交付给其他实例或稍后再试一次。 对于更复杂的应用场景,可能涉及到不同类型的数据结构作为消息载体,这时只需要调整泛型参数以及内部的具体解析方式即可适应变化的需求。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值