nilsmagnus / wsdl2java

Gradle plugin for generating java source from wsdl files
MIT License
142 stars 77 forks source link

java.lang.NoClassDefFoundError: jakarta/xml/bind/JAXBException #135

Open vivekbdh opened 1 year ago

vivekbdh commented 1 year ago

Suddenly the wsdl2java started throwing following exception. The same following setup was working before two weeks.

apply plugin: 'no.nils.wsdl2java'
buildscript {
    repositories {
        mavenCentral()
        maven {
            url "https://plugins.gradle.org/m2/"
        }
    }
    dependencies {
        classpath 'no.nils:wsdl2java:0.12'
    }
}

dependencies {
            dependency('javax.xml.bind:jaxb-api:2.3.1')
            dependency('javax.xml.ws:jaxws-api:2.3.1')
            dependency('com.sun.xml.bind:jaxb-core:2.3.0.1')
            dependency('com.sun.xml.bind:jaxb-impl:2.3.1')
            dependency('javax.activation:activation:1.1.1')
            dependency('javax.annotation:javax.annotation-api:1.3.2')
            dependency('javax.jws:jsr181-api:1.0-MR1')
            dependency('com.sun.xml.ws:jaxws-rt:2.3.0.2')
            dependency('com.sun.xml.bind:jaxb-xjc:2.4.0-b180830.0438')
            dependencySet(group: "org.apache.cxf", version: "3.3.5") {
                entry "cxf-rt-frontend-jaxws"
                entry "cxf-rt-transports-http"
                entry "cxf-rt-features-logging"
                entry "cxf-spring-boot-starter-jaxws"
            }
}
wsdl2java {
    wsdlsToGenerate = [
            ['-p', 'nl.intsetupdhvi.gbav', '-verbose', file('src/main/resources/wsdl/intsetupdhvi.wsdl')]
    ]
    wsdlDir = file('src/main/resources/wsdl')
}

Java version: 11 Gradle: gradle-6.4

Error Logs:

Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':pdhvi:wsdl2java'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:207)
    at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:263)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:205)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:186)
    at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:114)
    at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
    at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:62)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
    at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
    at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:41)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:370)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:357)
    ...
    ... 91 more
Caused by: java.lang.NoClassDefFoundError: jakarta/xml/bind/JAXBException
    at org.apache.cxf.tools.wsdlto.WSDLToJava.<init>(WSDLToJava.java:48)
    ... 106 more
Caused by: java.lang.ClassNotFoundException: jakarta.xml.bind.JAXBException
    ... 107 more

Please suggest if anyone have any idea to resolve this issue. Thanks!

Casper133 commented 1 year ago

It looks like the new version of Apache CXF (4.0.0) doesn't contain such classes. I fixed this with the cxfVersion property:

wsdl2java {
    ...
    cxfVersion = "3.3.2"
    ...
}
vivekbdh commented 1 year ago

It works. Thanks @Casper133

RubenJarqueTraves commented 1 year ago

Had the same issue and it was solved with @Casper133 suggestion. Thanks!

magnusart commented 1 year ago

@Casper133 wonderful tip! Was not in a mood to rip apart my whole build setup. Many thanks!