请教一下,rocketmq-common:5.1.1版本里的protocol被移走后,类的引用报错?

请教一下,rocketmq-common:5.1.1版本里的protocol被移走后,rocketmq-spring-boot-starter包里的DefaultRocketMQListenerContainer类的引用报错怎么解决?image.png

展开
收起
真的很搞笑 2023-06-06 13:52:21 373 分享 版权
3 条回答
写回答
取消 提交回答
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    在 RocketMQ 5.1.1 版本中,一些类(例如 org.apache.rocketmq.common.protocol.RequestCode)已经从原来的 rocketmq-common 模块中移除,这可能导致引用问题。在应用代码中使用这些类的时候,可能会出现类找不到或者编译错误等问题。

    针对这个问题,你可以参照以下几种解决办法:

    1. 使用新版本的类:RocketMQ 在不同的版本中可能会调整类的位置或名称,你可以查阅最新版本的文档或代码,确定最新版本的这些类的位置和名称,并修改应用代码中的相应引用。

    2. 升级 RocketMQ 版本:如果你的应用代码依赖于过时的 RocketMQ 版本,建议尽快升级到最新版本或者支持这些类的版本。

    3. 手动添加缺失的类:如果你的应用代码无法直接升级到支持这些类的版本,可以考虑手动将这些类从旧版的 rocketmq-common 模块中拷贝到新的位置。在做这样的操作时,需要注意保持代码的兼容性,并进行必要的测试。

    2023-06-06 16:38:34
    赞同 展开评论
  • 您好,RocketMQ 5.1.x 版本中与协议相关的实现类已经移动到了 rocketmq-client 模块中的 org.apache.rocketmq.remoting.protocol 包下,因此在引用 protocol 相关的类时需要更改对应的依赖。

    如果您使用的是 rocketmq-spring-boot-starter,则需要将对应版本号调整为 2.0.3 或以上。

    具体来说,您可以执行以下步骤来解决该问题:

    在 Maven 或 Gradle 配置文件中将 rocketmq-spring-boot-starter 的版本号更新为 2.0.3 或以上;

    如果您在代码中直接引用了 DefaultRocketMQListenerContainer 类,那么需要修改为 RocketMQMessageListenerContainer。

    修改完成后重新编译并部署应用程序即可。

    2023-06-06 14:17:34
    赞同 展开评论
  • 这个只能修改代码了,此回答整理自钉群“群2-Apache RocketMQ 中国开发者钉钉群”

    2023-06-06 13:54:55
    赞同 展开评论

涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系列产品 Serverless 化。RocketMQ 中文社区:https://rocketmq-learning.com/

收录在圈子:
+ 订阅
阿里云 云原生应用平台 肩负阿里巴巴集团基础设施云化以及核心技术互联网化的重要职责,致力于打造稳定、标准、先进的云原生产品,成为云原生时代的引领者,推动行业全面想云原生的技术升级,成为阿里云新增长引擎。商业化产品包括容器、云原生中间件、函数计算等。
还有其他疑问?
咨询AI助理