Reputation: 3
`Hi,
I am trying to upgrade my project to springboot 3.1.6 from 2.6.7 apache cxf(4.0.1) howver it is throwing error as Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
I tried multiple things like updating dependecy to below
implementation 'jakarta.xml.bind:jakarta.xml.bind-api:4.0.0'
implementation 'org.glassfish.jaxb:jaxb-runtime:4.0.0'`
however it still throws the error. my gradle file looks like
`import io.mateo.cxf.codegen.wsdl2java.Wsdl2Java
plugins {
id "io.spring.dependency-management" version "3.1.6"
id "org.springframework.boot" version "3.1.6"
id 'java'
id "io.mateo.cxf-codegen" version "1.0.0"
id 'org.hidetake.swagger.generator' version '2.19.2'
}`
`dependencies {
compileOnly "javax.servlet:javax.servlet-api:4.0.1"
implementation 'com.sun.xml.ws:jaxws-rt:4.0.0'
compileOnly "jakarta.xml.ws:jakarta.xml.ws-api:2.3.3"
compileOnly "jakarta.jws:jakarta.jws-api:1.1.1"
cxfCodegen "jakarta.xml.ws:jakarta.xml.ws-api:2.3.3"
cxfCodegen "jakarta.annotation:jakarta.annotation-api:1.3.5"
cxfCodegen "ch.qos.logback:logback-classic:1.2.10"
implementation "org.apache.cxf:cxf-spring-boot-starter-jaxws:4.0.1"
implementation "org.apache.cxf:cxf-rt-features-logging:4.0.1"
implementation "org.springframework.boot:spring-boot-starter-web-services"
compileOnly 'org.apache.commons:commons-lang3:3.12.0'
implementation 'jakarta.xml.bind:jakarta.xml.bind-api:4.0.0'
implementation 'org.glassfish.jaxb:jaxb-runtime:4.0.0'
}
Can you suggest what could be the problem?
Any help will be highly appreciated. thanks
I tried multiple things like updating dependecy to below
implementation 'jakarta.xml.bind:jakarta.xml.bind-api:4.0.0'
implementation 'org.glassfish.jaxb:jaxb-runtime:4.0.0'
implementation 'javax.xml.bind:jaxb-api:2.3.0'
implementation 'com.sun.xml.ws:jaxws-rt:4.0.0'
Upvotes: 0
Views: 9749
Reputation: 2848
The following dependencies (minimum) are javax-based version and shouldnt be present with current config
jakarta.xml.ws:jakarta.xml.ws-api:2.3.3
jakarta.annotation:jakarta.annotation-api:1.3.5
jakarta.jws:jakarta.jws-api:1.1.1
You should move to the following and ensure all your dependencies are jakarta-packaged (and not only jakarta-named) :
jakarta.xml.ws:jakarta.xml.ws-api:4.0.1
jakarta.annotation:jakarta.annotation-api:2.1.1
jakarta.jws:jakarta.jws-api:3.0.0
The gradle plugin for generating the classes from wsdl should also be upgraded to 2.2.0 version (2.2.0 version points to cxf 4.x which is jakarta based)
io.mateo.cxf-codegen:2.2.0
Upvotes: 1