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

有个问题反馈下。 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)

展开
收起
cuicuicuic 2023-12-25 09:55:54 41 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
    赞同 展开评论 打赏

多个子产品线联合打造金融级高可用消息服务以及对物联网的原生支持,覆盖多行业。

相关产品

  • 云消息队列 MQ
  • 热门讨论

    热门文章

    相关电子书

    更多
    万亿级数据洪峰下的消息引擎——Apache RocketMQ 立即下载
    基于RocketMQ Prometheus Exporter 立即下载
    基于RocketMQ Connect 构建全新数据流转处理平 立即下载