开发者社区 > 云原生 > 云消息队列 > 正文

有个问题反馈下。 rocketmq 客户端是1.8编译的,导致tomcat项目启动报错,为什么?

有个问题反馈下。 rocketmq 客户端是1.8编译的,里面引用的日志是包含1.9的特性,导致tomcat项目启动报错? org.apache.rocketmq rocketmq-client 5.1.4 io.github.aliyunmq rocketmq-logback-classic a7efad37749ddde52e8afb0668d96048.png
21-Dec-2023 15:02:31.145 SEVERE [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.startup.ContextConfig.processAnnotationsJar Unable to process Jar entry [module-info.class] from Jar [file:/D:/workbench/idea-zuche/carcrm/target/carcrm/WEB-INF/lib/jaxb-api-2.3.0.jar] for annotations org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 19at org.apache.tomcat.util.bcel.classfile.Constant.readConstant(Constant.java:97)at org.apache.tomcat.util.bcel.classfile.ConstantPool.(ConstantPool.java:54)at org.apache.tomcat.util.bcel.classfile.ClassParser.readConstantPool(ClassParser.java:174)at org.apache.tomcat.util.bcel.classfile.ClassParser.parse(ClassParser.java:83)at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2042)at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1989)at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1959)at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1912)at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1154)

展开
收起
真的很搞笑 2023-12-25 09:55:54 113 0
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    这个问题可能是由于RocketMQ客户端版本和日志依赖版本不匹配导致的。你可以尝试以下方法解决:

    1. 将RocketMQ客户端升级到与日志依赖版本相匹配的版本,例如将RocketMQ客户端升级到1.9版本。

    2. 如果不想升级RocketMQ客户端,可以尝试降低日志依赖的版本,例如使用与RocketMQ客户端1.8版本相匹配的日志依赖版本。

    3. 在项目的pom.xml文件中,排除RocketMQ客户端中的日志依赖,然后添加与RocketMQ客户端版本相匹配的日志依赖。例如:

    <dependency>
        <groupId>org.apache.rocketmq</groupId>
        <artifactId>rocketmq-client</artifactId>
        <version>5.1.4</version>
        <exclusions>
            <exclusion>
                <groupId>io.github.aliyunmq</groupId>
                <artifactId>rocketmq-logback-classic</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>io.github.aliyunmq</groupId>
        <artifactId>rocketmq-logback-classic</artifactId>
        <version>1.8.0</version>
    </dependency>
    

    这样可以避免因为日志依赖版本不匹配导致的启动报错。

    2023-12-26 14:28:07
    赞同 展开评论 打赏
  • 报错信息显示,RocketMQ客户端1.8编译版本引用的日志包含1.9的特性,导致与Tomcat项目启动时使用的BCEL库版本不兼容。为了解决这个问题,你可以尝试以下方法:

    • 升级Tomcat到支持更高版本BCEL的版本。
    • 使用与RocketMQ客户端版本兼容的日志库版本。
    • 如果可能,升级RocketMQ客户端到一个与Tomcat项目使用的BCEL库版本兼容的版本。
    2023-12-25 15:20:50
    赞同 展开评论 打赏

涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/

相关产品

  • 云消息队列 MQ
  • 相关电子书

    更多
    RocketMQ Client-GO 介绍 立即下载
    RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载
    基于 RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载