Skip to content

ClassNotFoundException: com.sun.xml.bind.v2.JAXBContextFactory etter oppgradering til Spring Boot 4.0.0 #365

@kajh

Description

@kajh

Vi kjører versjon 7.0.6 av signature-api-client-java. Vi har en Spring Boot app som vi prøver å oppgradere fra Spring Boot 3.5.8 til 4.0.0.

I pom.xml har vi

    <dependencyManagement>
        <dependencies>
            <!-- Fra https://github.com/digipost/signature-api-client-java?tab=readme-ov-file#dependency -->
            <dependency>
                <groupId>no.digipost.signature</groupId>
                <artifactId>signature-api-client-bom</artifactId>
                <version>${signature-api-client-java.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
...
       <!-- Denne får versjonsnummer fra dependencyManagement blokken tidligere i fila -->
        <dependency>
            <groupId>no.digipost.signature</groupId>
            <artifactId>signature-api-client-java</artifactId>
        </dependency>
...

Etter oppgradering til Spring Boot 4.0.0 får vi følgende stacktrace ved oppstart av applikasjonen:

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'scheduledHighSecurityAdminTasks' defined in URL [jar:nested:/app.jar/!BOOT-INF/classes/!/no/uio/webapps/nettskjema/api/admintasks/ScheduledHighSecurityAdminTasks.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'tsdConfig' defined in URL [jar:nested:/app.jar/!BOOT-INF/classes/!/no/uio/webapps/nettskjema/api/config/tsd/TsdConfig.class]: Unsatisfied dependency expressed through constructor parameter 11: Error creating bean with name 'testingDirectClient' defined in class path resource [no/uio/webapps/nettskjema/api/config/SigningClientConfiguration.class]: Failed to instantiate [no.digipost.signature.client.direct.DirectClient]: Factory method 'testingDirectClient' threw exception with message: com/sun/xml/bind/v2/JAXBContextFactory
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:804)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:240)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1382)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1221)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:565)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:525)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:333)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:371)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:331)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:196)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.instantiateSingleton(DefaultListableBeanFactory.java:1218)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingleton(DefaultListableBeanFactory.java:1184)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:1121)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:983)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:620)
at org.springframework.boot.web.server.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:765)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:454)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:321)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1374)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1363)
at no.uio.webapps.nettskjema.api.NettskjemaApiApplication.main(NettskjemaApiApplication.java:24)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:106)
at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64)
at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40)
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'tsdConfig' defined in URL [jar:nested:/app.jar/!BOOT-INF/classes/!/no/uio/webapps/nettskjema/api/config/tsd/TsdConfig.class]: Unsatisfied dependency expressed through constructor parameter 11: Error creating bean with name 'testingDirectClient' defined in class path resource [no/uio/webapps/nettskjema/api/config/SigningClientConfiguration.class]: Failed to instantiate [no.digipost.signature.client.direct.DirectClient]: Factory method 'testingDirectClient' threw exception with message: com/sun/xml/bind/v2/JAXBContextFactory
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:804)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:240)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1382)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1221)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:565)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:525)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:333)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:371)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:331)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:196)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:413)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1362)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1194)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:565)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:525)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:333)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:371)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:331)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:201)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveBean(DefaultListableBeanFactory.java:1225)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1704)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1651)
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:912)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791)
... 26 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'testingDirectClient' defined in class path resource [no/uio/webapps/nettskjema/api/config/SigningClientConfiguration.class]: Failed to instantiate [no.digipost.signature.client.direct.DirectClient]: Factory method 'testingDirectClient' threw exception with message: com/sun/xml/bind/v2/JAXBContextFactory
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:657)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:489)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1362)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1194)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:565)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:525)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:333)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:371)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:331)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:201)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:229)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1762)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1651)
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:912)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791)
... 49 common frames omitted
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [no.digipost.signature.client.direct.DirectClient]: Factory method 'testingDirectClient' threw exception with message: com/sun/xml/bind/v2/JAXBContextFactory
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.lambda$instantiate$0(SimpleInstantiationStrategy.java:183)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiateWithFactoryMethod(SimpleInstantiationStrategy.java:72)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:152)
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653)
... 63 common frames omitted
Caused by: java.lang.NoClassDefFoundError: com/sun/xml/bind/v2/JAXBContextFactory
at no.digipost.jaxb.context.OldJaxb2ContextFactory.(OldJaxb2ContextFactory.java:32)
at no.digipost.jaxb.context.StaticOldJaxb2ContextFactory.(StaticOldJaxb2ContextFactory.java:27)
at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method)
at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unknown Source)
at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.ensureClassInitialized(Unknown Source)
at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.newMethodAccessor(Unknown Source)
at java.base/jdk.internal.reflect.ReflectionFactory.newMethodAccessor(Unknown Source)
at java.base/java.lang.reflect.Method.acquireMethodAccessor(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:297)
at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:286)
at javax.xml.bind.ContextFinder.find(ContextFinder.java:409)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:721)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:662)
at no.digipost.signature.jaxb.JaxbUtils.initContext(JaxbUtils.java:29)
at no.digipost.signature.jaxb.JaxbMarshaller.(JaxbMarshaller.java:119)
at no.digipost.signature.jaxb.JaxbMarshaller.(JaxbMarshaller.java:125)
at no.digipost.signature.jaxb.JaxbMarshaller$ForRequestsOfAllApis.(JaxbMarshaller.java:62)
at no.digipost.signature.jaxb.JaxbMarshaller$ForRequestsOfAllApis$SingletonHolder.(JaxbMarshaller.java:58)
at no.digipost.signature.jaxb.JaxbMarshaller$ForRequestsOfAllApis.singleton(JaxbMarshaller.java:54)
at no.digipost.signature.client.core.internal.ClientHelper.(ClientHelper.java:76)
at no.digipost.signature.client.direct.DirectClient.(DirectClient.java:40)
at no.uio.webapps.nettskjema.api.config.SigningClientConfiguration.createDirectClient(SigningClientConfiguration.java:90)
at no.uio.webapps.nettskjema.api.config.SigningClientConfiguration.testingDirectClient(SigningClientConfiguration.java:70)
at no.uio.webapps.nettskjema.api.config.SigningClientConfiguration$$SpringCGLIB$$0.CGLIB$testingDirectClient$1()
at no.uio.webapps.nettskjema.api.config.SigningClientConfiguration$$SpringCGLIB$$FastClass$$1.invoke()
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:258)
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:398)
at no.uio.webapps.nettskjema.api.config.SigningClientConfiguration$$SpringCGLIB$$0.testingDirectClient()
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.lambda$instantiate$0(SimpleInstantiationStrategy.java:155)
... 66 common frames omitted
Caused by: java.lang.ClassNotFoundException: com.sun.xml.bind.v2.JAXBContextFactory
at java.base/java.net.URLClassLoader.findClass(Unknown Source)
at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
at org.springframework.boot.loader.net.protocol.jar.JarUrlClassLoader.loadClass(JarUrlClassLoader.java:107)
at org.springframework.boot.loader.launch.LaunchedClassLoader.loadClass(LaunchedClassLoader.java:91)
at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
... 98 common frames omitted

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions