question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

NoClassDefFoundError javax/servlet/ServletException with version 1.5.12

See original GitHub issue

Describe the bug

  • We have a Spring-Boot (Version 2.5.5) Web-Flux application that uses springdoc-openapi-webflux-ui. I don’t think we have any special configuration. Only relying on Spring-Boot’s autoconfiguration capabilities and using the Swagger annotations in a @RestController. When starting the application we receive the following exception since upgrading to 1.5.12:
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springdoc.core.GenericResponseService]: Factory method 'responseBuilder' threw exception; nested exception is java.lang.NoClassDefFoundError: javax/servlet/ServletException
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185) ~[spring-beans-5.3.10.jar:5.3.10]
	at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653) ~[spring-beans-5.3.10.jar:5.3.10]
	... 33 common frames omitted
Caused by: java.lang.NoClassDefFoundError: javax/servlet/ServletException
	at java.base/java.lang.ClassLoader.defineClass1(Native Method) ~[na:na]
	at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016) ~[na:na]
	at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174) ~[na:na]
	at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:801) ~[na:na]
	at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:699) ~[na:na]
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:622) ~[na:na]
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:580) ~[na:na]
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[na:na]
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[na:na]
	at java.base/java.lang.ClassLoader.defineClass1(Native Method) ~[na:na]
	at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016) ~[na:na]
	at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174) ~[na:na]
	at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:801) ~[na:na]
	at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:699) ~[na:na]
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:622) ~[na:na]
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:580) ~[na:na]
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[na:na]
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[na:na]
	at java.base/java.lang.ClassLoader.defineClass1(Native Method) ~[na:na]
	at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016) ~[na:na]
	at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174) ~[na:na]
	at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:801) ~[na:na]
	at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:699) ~[na:na]
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:622) ~[na:na]
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:580) ~[na:na]
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[na:na]
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[na:na]
	at java.base/java.lang.ClassLoader.defineClass1(Native Method) ~[na:na]
	at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016) ~[na:na]
	at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174) ~[na:na]
	at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:801) ~[na:na]
	at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:699) ~[na:na]
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:622) ~[na:na]
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:580) ~[na:na]
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[na:na]
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[na:na]
	at java.base/java.lang.Class.forName0(Native Method) ~[na:na]
	at java.base/java.lang.Class.forName(Class.java:315) ~[na:na]
	at org.springdoc.core.GenericResponseService.<clinit>(GenericResponseService.java:115) ~[springdoc-openapi-common-1.5.12.jar:1.5.12]
	at org.springdoc.webflux.core.SpringDocWebFluxConfiguration.responseBuilder(SpringDocWebFluxConfiguration.java:138) ~[springdoc-openapi-webflux-core-1.5.12.jar:1.5.12]

Coming from version 1.5.11, the failing behavior seems to come from the exact changes that have been made in GenericResponseService: https://github.com/springdoc/springdoc-openapi/compare/v1.5.11...v1.5.12

It seems like the code can deal with a ClassNotFoundException but not a NoClassDefFoundError. Now I’m not sure whether this is a quirk of my application or actually a bug in springdoc-openapi

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Comments:5 (4 by maintainers)

github_iconTop GitHub Comments

1reaction
hisenercommented, Oct 22, 2021

Yeah, that’s why my first suggestion is catching and throwing another exception to give a hint. That said, I am also okay with leaving as-is.

1reaction
skuzzlecommented, Oct 22, 2021

Meanwhile I also found out that we had a bogus dependency configuration pulling in spring-webmvc and I fixed the problem for us by fixing the dependencies.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Spring Boot java.lang.NoClassDefFoundError: javax/servlet ...
in new version I see a checkbox, checking it will added provided dependencies at runtime for intellij ! – Kalpesh Soni. Apr 24,...
Read more >
3 ways to solve java.lang.NoClassDefFoundError in Java J2EE
I am facing the NoClassDefFoundError in my Android app together with the ClassNotFoundError. The app's architecture is that I have a free and...
Read more >
"NoClassDefFoundError" on updating of Kotlin JVM from 1.5 ...
I got java.lang.NoClassDefFoundError: com/intellij/openapi/util/SystemInfoRt at com.intellij.openapi.application.PathManager.
Read more >
Exception in thread 'main' java.lang.NoClassDefFoundError
I am getting Exception in thread "main" java.lang.NoClassDefFoundError as below when runs a java standalone project using the JAXB version of the JAVA...
Read more >
java.lang.NoClassDefFoundError exception when starting 4.2.3
NoClassDefFoundError exceptions such as the following when I start ... 14:01:52,866 INFO [ServerInfo] Java version: 1.5.0_13,Apple Inc.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found