Skip to content

Compatibility of Springdoc 2.0+ with native Spring project on Java 17 #3094

@BLouro

Description

@BLouro

Hello Springdoc team,

I’m trying to integrate Springdoc 2.0+ into a native Spring project (not Spring Boot) using Java 17.
springdoc version 2.8.13

I have followed all the requirements from the official documentation:

However, when starting the application, I get the following error:

org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: URL [jar:file.../WEB-INF/lib/springdoc-openapi-starter-common-2.8.13.jar!/org/springdoc/core/configuration/SpringDocSpecPropertiesConfiguration.class] at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.scanCandidateComponents(ClassPathScanningCandidateComponentProvider.java:463 undefined) at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:317 undefined) at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:276 undefined) at org.springframework.context.annotation.ComponentScanAnnotationParser.parse(ComponentScanAnnotationParser.java:128 undefined) at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:289 undefined) at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:243 undefined) at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:196 undefined) at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:164 undefined) at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:415 undefined) at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:287 undefined) at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:344 undefined) at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:115 undefined) at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:771 undefined) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:589 undefined) at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:394 undefined) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:274 undefined) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:102 undefined) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4046 undefined) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4474 undefined) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164 undefined) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203 undefined) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193 undefined) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264 undefined) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75 undefined) at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145 undefined) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749 undefined) at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:772 undefined) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164 undefined) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203 undefined) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193 undefined) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264 undefined) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75 undefined) at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145 undefined) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749 undefined) at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:203 undefined) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164 undefined) at org.apache.catalina.core.StandardService.startInternal(StandardService.java:412 undefined) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164 undefined) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:870 undefined) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164 undefined) at org.apache.catalinaup.Catalina.start.start(Catalina.java:761 undefined) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77 undefined) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43 undefined) at java.base/java.lang.reflect.Method.invoke(Method.java:569 undefined) at org.apache.catalinaup.Bootstrap.start.start(Bootstrap.java:345 undefined) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476 undefined) Caused by: java.lang.NoSuchFieldError: ESCAPE_CHARACTER

My question is: is Springdoc 2.0+ fully compatible with native Spring projects running on Java 17, or is there any additional step required to make it work correctly?

I appreciate any guidance!

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