wsdl2java icon indicating copy to clipboard operation
wsdl2java copied to clipboard

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

Open vivekbdh opened this issue 3 years ago • 4 comments

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!

vivekbdh avatar Dec 23 '22 11:12 vivekbdh

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"
    ...
}

Casper133 avatar Dec 23 '22 12:12 Casper133

It works. Thanks @Casper133

vivekbdh avatar Dec 23 '22 13:12 vivekbdh

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

RubenJarqueTraves avatar Dec 29 '22 15:12 RubenJarqueTraves

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

magnusart avatar Feb 20 '23 21:02 magnusart