CXF Codegen wsdlToJava JAXBException

27 Views Asked by At

i'am updating my projekt to Java21 and SpringBoot3.x and i have to use to creating java-classes from WSDL a plugin 'io.mateo.cxf-codegen'. I'am following this UseGuide: https://ciscoo.github.io/cxf-codegen-gradle/docs/current/user-guide/#overview

My gradle.build:

import io.mateo.cxf.codegen.wsdl2java.Wsdl2Java

buildscript {

    dependencies {
        classpath 'javax.xml.ws:jaxws-api:2.3.1'
        classpath 'javax.jws:javax.jws-api:1.1'
    }
}

plugins {
    id 'idea'
    id 'java'
    id 'jacoco'
    id 'org.springframework.boot' version '2.7.18'
    id 'io.spring.dependency-management' version '1.1.3'
    id 'io.mateo.cxf-codegen' version '2.3.0'
}

apply plugin: 'java'

ext {
    springBootVersion = '2.7.18'
    springSecurityVersion = '5.7.8'
    mapstructVersion = '1.4.2.Final'
    lombokVersion = '1.18.24'
}

repositories {
    mavenLocal()
}

configurations.all {
    exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
}

dependencies {


    // fixes fuer twistlock-findings
    implementation 'com.fasterxml.jackson.core:jackson-databind:2.13.4.2'
    implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-csv:2.13.4'

    implementation(group: 'org.springframework.boot', name: 'spring-boot-starter-web') {
        exclude(module: 'spring-boot-starter-tomcat')
    }
    implementation("org.springframework.boot:spring-boot-starter-web-services:${springBootVersion}") {
        exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
    }
    implementation group: 'org.springframework.boot', name: 'spring-boot-starter-validation', version: springBootVersion
    implementation group: 'org.springframework.boot', name: 'spring-boot-starter-actuator', version: springBootVersion
    implementation group: 'org.springframework.boot', name: 'spring-boot-starter-jetty', version: springBootVersion
    implementation group: 'org.springframework', name: 'spring-core', version: '5.3.32'
    implementation group: 'org.springframework', name: 'spring-web', version: '5.3.32'


    implementation group: 'org.apache.cxf', name: 'cxf-codegen-plugin', version: '4.0.3'
    implementation group: 'org.jvnet.jaxb', name: 'jaxb-maven-plugin', version: '4.0.0'


    // spring-security
    implementation("org.springframework.boot:spring-boot-starter-security:${springBootVersion}") {
        exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
    }
    
    implementation("org.springframework.security:spring-security-oauth2-jose:${springSecurityVersion}")
    implementation("org.springframework.security:spring-security-oauth2-resource-server:${springSecurityVersion}")

    // spring-data
    implementation group: 'org.springframework.boot', name: 'spring-boot-starter-data-jpa', version: springBootVersion
    implementation group: 'org.postgresql', name: 'postgresql', version: '42.7.2'

   
    implementation("org.apache.logging.log4j:log4j-api:2.13.3")
    implementation group: 'net.logstash.logback', name: 'logstash-logback-encoder', version: '7.2'

    implementation 'org.apache.commons:commons-lang3:3.12.0'
    implementation group: 'org.apache.commons', name: 'commons-collections4', version: '4.4'

    implementation 'javax.servlet:javax.servlet-api:3.1.0'
    implementation 'javax.transaction:javax.transaction-api:1.3'

    // lombok
    compileOnly "org.projectlombok:lombok:${lombokVersion}"
    annotationProcessor "org.projectlombok:lombok:${lombokVersion}"

    // mapstruct gradle >= 3.4 configuration
    implementation "org.mapstruct:mapstruct:${mapstructVersion}"
    annotationProcessor "org.mapstruct:mapstruct-processor:${mapstructVersion}"

    implementation 'jakarta.xml.ws:jakarta.xml.ws-api:3.0.0'
    implementation 'jakarta.xml.bind:jakarta.xml.bind-api:4.0.0'
    implementation 'jakarta.jws:jakarta.jws-api:3.0.0'

    implementation 'org.springdoc:springdoc-openapi-ui:1.6.11'
    implementation 'javax.xml.ws:jaxws-api:2.3.1'
    implementation 'javax.jws:javax.jws-api:1.1'

}

cxfCodegen {
    cxfVersion = "3.2.0"
}

tasks.register("generateJavaFromWsdl", Wsdl2Java){
    toolOptions{
        wsdl.set(file("$projectDir/src/wsdl/1_1.wsdl").toPath().toAbsolutePath().toString())
    }
}

sourceCompatibility = '21'

I'am getting error for my created task:

Errors occurred while building effective model from C:\Users\user.gradle\caches\modules-2\files-2.1\com.sun.xml.bind\jaxb-xjc\2.2.11\4da3d39ae8ccc39549e3f8971f56035f61d7bf79\jaxb-xjc-2.2.11.pom: 'dependencyManagement.dependencies.dependency.systemPath' for com.sun:tools:jar must specify an absolute path but is ${tools.jar} in com.sun.xml.bind:jaxb-xjc:2.2.11 Errors occurred while building effective model from C:\Users\user.gradle\caches\modules-2\files-2.1\com.sun.xml.bind\jaxb-core\2.2.11\db0f76866c6b1e50084e03ee8cf9ce6b19becdb3\jaxb-core-2.2.11.pom: 'dependencyManagement.dependencies.dependency.systemPath' for com.sun:tools:jar must specify an absolute path but is ${tools.jar} in com.sun.xml.bind:jaxb-core:2.2.11 Errors occurred while building effective model from C:\Users\user.gradle\caches\modules-2\files-2.1\com.sun.xml.bind\jaxb-impl\2.2.11\2d4b554997fd01d1a2233b1529b22fc9ecc0cf5c\jaxb-impl-2.2.11.pom: 'dependencyManagement.dependencies.dependency.systemPath' for com.sun:tools:jar must specify an absolute path but is ${tools.jar} in com.sun.xml.bind:jaxb-impl:2.2.11 Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException at org.apache.cxf.tools.wsdlto.WSDLToJava.(WSDLToJava.java:48) at org.apache.cxf.tools.wsdlto.WSDLToJava.main(WSDLToJava.java:182) Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526) ... 2 more

Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException

Execution failed for task ':generateJavaFromWsdl'.

Process 'command 'C:\Users\user\jdk-21.0.2\bin\java.exe'' finished with non-zero exit value 1

I've already added dependencies like that, but without success:

compile group: 'com.sun.xml.bind', name: 'jaxb-xjc', version: '2.2.11' 
compile group: 'com.sun.xml.bind', name: 'jaxb-core', version: '2.2.11'
compile group: 'com.sun.xml.bind', name: 'jaxb-impl', version: '2.2.11

'

0

There are 0 best solutions below