0°

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

有个问题反馈下。 rocketmq 客户端是1.8编译的,里面引用的日志是包含1.9的特性,导致tomcat项目启动报错? org.apache.rocketmq rocketmq-client 5.1.4 io.github.aliyunmq rocketmq-logback-classic
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)

以下为热心网友提供的参考意见

这个问题可能是由于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>

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

以下为热心网友提供的参考意见

报错信息显示,RocketMQ客户端1.8编译版本引用的日志包含1.9的特性,导致与Tomcat项目启动时使用的BCEL库版本不兼容。为了解决这个问题,你可以尝试以下方法:

  • 升级Tomcat到支持更高版本BCEL的版本。
  • 使用与RocketMQ客户端版本兼容的日志库版本。
  • 如果可能,升级RocketMQ客户端到一个与Tomcat项目使用的BCEL库版本兼容的版本。
「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====