You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ActiveMQ发送JMS消息失败:NoClassDefFoundError异常求助

解决ActiveMQ发送JMS消息时的javax.xml.bind.DatatypeConverter缺失问题

常见原因及修复方案

  • JDK版本适配问题
    JDK 9及以上版本已移除JAXB作为默认内置模块,仅添加jaxb-api依赖不足以解决问题,需要补充完整的JAXB实现依赖:

    • Maven项目添加以下依赖(确保scope为compile):
      <dependency>
          <groupId>javax.xml.bind</groupId>
          <artifactId>jaxb-api</artifactId>
          <version>2.3.1</version>
          <scope>compile</scope>
      </dependency>
      <dependency>
          <groupId>com.sun.xml.bind</groupId>
          <artifactId>jaxb-impl</artifactId>
          <version>2.3.1</version>
          <scope>compile</scope>
      </dependency>
      <dependency>
          <groupId>com.sun.xml.bind</groupId>
          <artifactId>jaxb-core</artifactId>
          <version>2.3.0.1</version>
          <scope>compile</scope>
      </dependency>
      <dependency>
          <groupId>javax.activation</groupId>
          <artifactId>activation</artifactId>
          <version>1.1.1</version>
          <scope>compile</scope>
      </dependency>
      
    • Gradle项目对应配置:
      implementation 'javax.xml.bind:jaxb-api:2.3.1'
      implementation 'com.sun.xml.bind:jaxb-impl:2.3.1'
      implementation 'com.sun.xml.bind:jaxb-core:2.3.0.1'
      implementation 'javax.activation:activation:1.1.1'
      
    • 若使用Java模块化(module-info.java),需在模块声明中添加:
      requires javax.xml.bind;
      
  • 依赖冲突或版本不匹配
    项目中可能存在多版本JAXB依赖冲突,比如Spring Boot等框架自带的jaxb-api版本与手动添加的不一致。可以通过以下命令排查依赖树:

    mvn dependency:tree | grep jaxb
    

    找到冲突依赖后,在对应依赖中排除旧版本:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-activemq</artifactId>
        <exclusions>
            <exclusion>
                <groupId>javax.xml.bind</groupId>
                <artifactId>jaxb-api</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    
  • ActiveMQ客户端版本兼容问题
    旧版ActiveMQ客户端对JDK 9+的JAXB支持不完善,尝试升级到兼容版本(如5.16.x及以上):

    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>activemq-client</artifactId>
        <version>5.16.5</version>
    </dependency>
    
  • Web应用类加载器问题
    若部署在Tomcat等应用服务器,可能存在服务器自带JAXB覆盖项目依赖的情况。可在conf/catalina.properties中配置优先加载项目内的JAXB相关Jar:

    jaxb-api.jar,jaxb-impl.jar,jaxb-core.jar,activation.jar
    

内容的提问来源于stack exchange,提问作者MUSKAN GURJAR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 19:27:38