Spring Boot 项目不断抱怨 java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException 即使我已经添加了依赖项

问题描述 投票:0回答:1

将 Spring Boot 从 2.1.9 JDK 8 升级到 2.7.16 JDK 17 我知道 JAXB 需要作为依赖项包含在内,并且我已将以下几行添加到 build.gradle

implementation group: 'javax.xml.bind', name: 'jaxb-api', version: '2.2.4'
implementation group: 'org.glassfish.jaxb', name: 'jaxb-runtime', version: '4.0.3'

但是编译失败,因为 gradle 排除了compileJava任务中的jar

Excluding [javax.activation:javax.activation-api, com.zaxxer:HikariCP-java7, ognl:ognl, org.javassist:javassist, com.mchange:c3p0, org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec, javax.persistence:javax.persistence-api]

这是我的整个 build.gradle 文件。即使已包含依赖项,我也无法弄清楚为什么会引发 JAXB 错误。有人能发现我做错了什么吗?

plugins {
    id 'java'
    id 'org.springframework.boot' version '2.7.16'
    id 'io.spring.dependency-management' version '1.0.15.RELEASE'
}

group = 'com.refirx.application'
version = '0.0.1-SNAPSHOT'

java {
    sourceCompatibility = '17'
}

configurations {
    developmentOnly
    runtimeClasspath {
    extendsFrom developmentOnly
    }
}

repositories {
    mavenCentral()
}

dependencies {
    annotationProcessor "org.springframework.boot:spring-boot-configuration-processor"
    annotationProcessor 'org.projectlombok:lombok:1.18.28'
    annotationProcessor 'org.hibernate:hibernate-jpamodelgen:5.3.7.Final'

    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'org.springframework.boot:spring-boot-starter-data-rest'
    implementation 'org.springframework.boot:spring-boot-starter-security'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.springframework.boot:spring-boot-starter-validation'
    implementation 'org.springframework.boot:spring-boot-starter-actuator'
    implementation group: 'org.springframework.boot', name: 'spring-boot-starter-quartz', version: '2.4.5'
    implementation group: 'org.quartz-scheduler', name: 'quartz', version: '2.3.2'
    implementation 'com.google.oauth-client:google-oauth-client-jetty:1.23.0'
    implementation 'com.google.maps:google-maps-services:0.14.0'
    implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-csv:2.11.2'
    implementation 'com.graphhopper.external:jackson-datatype-jts:0.10-2.5-1'
    implementation 'org.locationtech.jts:jts-core:1.18.2'
    implementation platform('software.amazon.awssdk:bom:2.15.3')
    implementation group: 'org.springframework.cloud', name: 'spring-cloud-aws-messaging', version: '2.2.6.RELEASE'
    implementation 'com.amazonaws:aws-java-sdk-s3:1.11.875'
    implementation 'com.amazonaws:aws-java-sdk-rekognition:1.11.303'
    implementation group: 'com.amazonaws', name: 'aws-java-sdk-sqs', version: '1.11.1000'
    implementation group: 'org.apache.commons', name: 'commons-text', version: '1.9'
    implementation group: 'org.redisson', name: 'redisson-spring-data-20', version: '3.8.0'
    //implementation group: 'io.micrometer', name: 'micrometer-registry-cloudwatch2', version: '1.7.1'
    implementation 'org.hibernate:hibernate-spatial:5.6.1.Final'
    implementation group: 'com.google.firebase', name: 'firebase-admin', version: '8.1.0'
    implementation group: 'com.opencsv', name: 'opencsv', version: '5.7.1'
    implementation group: 'org.sejda.imageio', name: 'webp-imageio', version: '0.1.6'
    implementation group: 'com.sun.activation', name: 'javax.activation', version: '1.2.0'
    implementation group: 'javax.xml.bind', name: 'jaxb-api', version: '2.2.4'
    implementation group: 'org.glassfish.jaxb', name: 'jaxb-runtime', version: '4.0.3'

    developmentOnly 'org.springframework.boot:spring-boot-devtools'
    runtimeOnly 'mysql:mysql-connector-java'

    implementation group: 'com.google.api-client', name: 'google-api-client', version: '1.30.7'
    implementation group: 'com.google.apis', name: 'google-api-services-drive', version: 'v3-rev188-1.25.0'
    implementation group: 'commons-io', name: 'commons-io', version: '2.6'
    implementation group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.11.2'
    implementation group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-joda', version: '2.11.2'
    implementation group: 'eu.bitwalker', name: 'UserAgentUtils', version: '1.21'
    implementation group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.9.2'
    implementation group: 'commons-validator', name: 'commons-validator', version: '1.6'
    implementation group: 'io.jsonwebtoken', name: 'jjwt', version: '0.9.1'
    implementation group: 'io.springfox', name: 'springfox-swagger2', version: '2.9.2'
    implementation group: 'joda-time', name: 'joda-time', version: '2.10.5'
    implementation group: 'org.json', name: 'json', version: '20190722'
    implementation group: 'org.springframework.data', name: 'spring-data-redis', version: '2.1.8.RELEASE'
    implementation group: 'redis.clients', name: 'jedis', version: '2.9.0'
    implementation group: 'org.springframework.boot', name: 'spring-boot-starter-mail', version: '2.2.1.RELEASE'
    implementation group: 'org.springframework.boot', name: 'spring-boot-starter-thymeleaf', version: '2.2.1.RELEASE'
    implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.9'
    implementation group: 'mysql', name: 'mysql-connector-java', version: '8.0.17'
    implementation group: 'net.minidev', name: 'json-smart', version: '2.3'
    implementation group: 'org.springframework.plugin', name: 'spring-plugin-core', version: '1.2.0.RELEASE'
    implementation group: 'commons-fileupload', name: 'commons-fileupload', version: '1.3.1'
    implementation group: 'org.springframework.boot', name: 'spring-boot-starter-freemarker', version: '2.5.6'
    implementation group: 'joda-time', name: 'joda-time-hibernate', version: '1.4'
    implementation group: 'com.azure', name: 'azure-storage-blob', version: '12.7.0'
    implementation group: 'org.imgscalr', name: 'imgscalr-lib', version: '4.2'
    implementation group: 'com.twelvemonkeys.imageio', name: 'imageio-jpeg', version: '3.6.1'
    implementation group: 'com.twelvemonkeys.imageio', name: 'imageio-core', version: '3.6.1'
    implementation group: 'com.twelvemonkeys.imageio', name: 'imageio-bmp', version: '3.6.1'
    implementation group: 'org.apache.commons', name: 'commons-imaging', version: '1.0-alpha2'
    implementation 'org.flywaydb:flyway-core:5.2.4'
    implementation 'org.apache.tika:tika-core:2.1.0'
    implementation 'org.apache.tika:tika-parsers:2.1.0'
    implementation group: 'com.drewnoakes', name: 'metadata-extractor', version: '2.18.0'
    implementation group: 'org.springframework', name: 'spring-test', version: '5.3.8'
    implementation 'com.razorpay:razorpay-java:1.3.9'
    implementation 'org.projectlombok:lombok:1.18.28'
}

我已经研究并添加了每个人都建议将 JAXB 包含在依赖项中的修复程序,但它并没有解决问题

spring spring-boot jaxb java-17
1个回答
0
投票

为了解决这个问题,至少对我来说,我需要将这 4 个依赖项/jar 添加到我的项目中

 1. javax.activation-1.2.0.jar
// https://mvnrepository.com/artifact/com.sun.activation/javax.activation
implementation group: 'com.sun.activation', name: 'javax.activation', version: '1.2.0'

 2. jaxb-api-2.3.0.jar
// https://mvnrepository.com/artifact/javax.xml.bind/jaxb-api
implementation group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.0'

 3. jaxb-core-2.3.0.jar
// https://mvnrepository.com/artifact/com.sun.xml.bind/jaxb-core
implementation group: 'com.sun.xml.bind', name: 'jaxb-core', version: '2.3.0'

 4. jaxb-impl-2.3.0.jar
// https://mvnrepository.com/artifact/com.sun.xml.bind/jaxb-impl
implementation group: 'com.sun.xml.bind', name: 'jaxb-impl', version: '2.3.0'
© www.soinside.com 2019 - 2024. All rights reserved.