Unable to start servlet java.lang.NoClassDefFoundError: org/springframework/core/io/Resource

286 views
Skip to first unread message

Jelle de Jong

unread,
Sep 29, 2022, 7:29:19 AM9/29/22
to Pac4j users mailing list
Hello everybody,

Does someone see what I am doing wrong here... Is this a java compilation issue or a config file error that can cause this? Thank you in advance.

full error:
https://github.com/iwayvietnam/zm-sso/issues/6#issuecomment-1261481499
config:

2022-09-28 23:23:50,385 INFO [main] [] extensions - Initialized extension clamscanner: com.zimbra.clam...@com.zimbra.cs.extension.ZimbraExtensionClassLoader@121c1a08 2022-09-28 23:23:50,392 INFO [main] [] extensions - Create sso session table 2022-09-28 23:23:50,397 INFO [main] [] extensions - Register sso handlers 2022-09-28 23:23:50,400 INFO [main] [] extensions - Load config properties 2022-09-28 23:23:50,409 INFO [main] [] extensions - Build Pac4J config 2022-09-28 23:23:50,412 FATAL [main] [] soap - Unable to start servlet java.lang.NoClassDefFoundError: org/springframework/core/io/Resource    at org.pac4j.config.builder.Saml2ClientBuilder.tryCreateSaml2Client(Saml2ClientBuilder.java:40) ~[pac4j-config-4.5.4.jar:?]    at org.pac4j.config.client.PropertiesConfigFactory.build(PropertiesConfigFactory.java:80) ~[pac4j-config-4.5.4.jar:?]    at com.iwayvietnam.zmsso.pac4j.ConfigBuilder.buildConfig(ConfigBuilder.java:139) ~[?:?]    at com.iwayvietnam.zmsso.pac4j.ConfigBuilder.<init>(ConfigBuilder.java:70) ~[?:?]    at com.iwayvietnam.zmsso.pac4j.ConfigBuilder.getInstance(ConfigBuilder.java:86) ~[?:?]    at com.iwayvietnam.zmsso.BaseSsoHandler.<init>(BaseSsoHandler.java:56) ~[?:?]    at com.iwayvietnam.zmsso.LoginHandler.<init>(LoginHandler.java:39) ~[?:?]    at com.iwayvietnam.zmsso.ZmSsoExtension.init(ZmSsoExtension.java:57) ~[?:?]

Misagh

unread,
Sep 29, 2022, 7:35:37 AM9/29/22
to Pac4j users mailing list
Isn't the error here?

Caused by: java.lang.ClassNotFoundException:
org.springframework.core.io.Resource
at java.net.URLClassLoader.findClass(URLClassLoader.java:445) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:587) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
> --
> You received this message because you are subscribed to the Google Groups "Pac4j users mailing list" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to pac4j-users...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/pac4j-users/7aed6b27-aab9-4e0b-9103-e7f871637bd2n%40googlegroups.com.

Jelle de Jong

unread,
Sep 29, 2022, 7:45:05 AM9/29/22
to Pac4j users mailing list
I have searched on that error, but the spring-core jar was present. What do you see about the error? What should I do?

# find -iname *spring*jar
./lib/jars/spring-beans-5.3.18.jar
./lib/jars/spring-aop-5.3.18.jar
./lib/jars/spring-context-5.3.18.jar
./lib/jars/spring-expression-5.3.18.jar
./lib/jars/spring-asm-3.0.7.RELEASE.jar
./lib/jars/spring-core-5.3.18.jar
./jetty_base/webapps/service/WEB-INF/lib/spring-beans-5.3.18.jar
./jetty_base/webapps/service/WEB-INF/lib/spring-aop-5.3.18.jar
./jetty_base/webapps/service/WEB-INF/lib/spring-context-5.3.18.jar
./jetty_base/webapps/service/WEB-INF/lib/spring-expression-5.3.18.jar
./jetty_base/webapps/service/WEB-INF/lib/spring-asm-3.0.7.RELEASE.jar
./jetty_base/webapps/service/WEB-INF/lib/spring-core-5.3.18.jar
./common/jetty_home/lib/spring/jetty-spring-9.4.46.v20220331.jar

Misagh

unread,
Sep 29, 2022, 9:00:52 AM9/29/22
to Jelle de Jong, Pac4j users mailing list
The JAR being present is one thing; the classloader loading it is
another. Your app, for whatever reason, is not loading that JAR for
you. You'll have to take it up with that app and the container and the
host environment.
> To view this discussion on the web visit https://groups.google.com/d/msgid/pac4j-users/e3f23f87-c2bd-4ce7-b8f0-de04a1a598can%40googlegroups.com.

Jelle de Jong

unread,
Sep 29, 2022, 1:06:33 PM9/29/22
to Pac4j users mailing list
Thank you!! I was able to get a good bit further debugging the dependencies.|

I now running into the following error and I am not sure how to move on.

I searched with google on "org.pac4j.saml.util.DefaultConfigurationManager Unable to get public no-arg constructor" but did not get much further is it an java version dependency issue?

2022-09-29 19:00:43,966 INFO  [main] [] extensions - Create sso session table
2022-09-29 19:00:43,971 INFO  [main] [] extensions - Register sso handlers
2022-09-29 19:00:43,975 INFO  [main] [] extensions - Load config properties
2022-09-29 19:00:43,984 INFO  [main] [] extensions - Build Pac4J config
2022-09-29 19:00:44,002 FATAL [main] [] soap - Unable to start servlet
java.util.ServiceConfigurationError: org.pac4j.saml.util.ConfigurationManager: org.pac4j.saml.util.DefaultConfigurationManager Unable to get public no-arg constructor
    at java.util.ServiceLoader.fail(ServiceLoader.java:586) ~[?:?]
    at java.util.ServiceLoader.getConstructor(ServiceLoader.java:679) ~[?:?]
    at java.util.ServiceLoader$LazyClassPathLookupIterator.hasNextService(ServiceLoader.java:1240) ~[?:?]
    at java.util.ServiceLoader$LazyClassPathLookupIterator.hasNext(ServiceLoader.java:1273) ~[?:?]
    at java.util.ServiceLoader$2.hasNext(ServiceLoader.java:1309) ~[?:?]
    at java.util.ServiceLoader$3.hasNext(ServiceLoader.java:1393) ~[?:?]
    at java.lang.Iterable.forEach(Iterable.java:74) ~[?:?]
    at org.pac4j.saml.util.Configuration.bootstrap(Configuration.java:76) ~[pac4j-saml-4.5.4.jar:?]
    at org.pac4j.saml.util.Configuration.<clinit>(Configuration.java:50) ~[pac4j-saml-4.5.4.jar:?]
    at org.pac4j.saml.client.SAML2Client.<clinit>(SAML2Client.java:88) ~[pac4j-saml-4.5.4.jar:?]
    at org.pac4j.config.builder.Saml2ClientBuilder.tryCreateSaml2Client(Saml2ClientBuilder.java:57) ~[pac4j-config-4.5.4.jar:?]

    at org.pac4j.config.client.PropertiesConfigFactory.build(PropertiesConfigFactory.java:80) ~[pac4j-config-4.5.4.jar:?]
    at com.iwayvietnam.zmsso.pac4j.ConfigBuilder.buildConfig(ConfigBuilder.java:139) ~[?:?]
    at com.iwayvietnam.zmsso.pac4j.ConfigBuilder.<init>(ConfigBuilder.java:70) ~[?:?]
    at com.iwayvietnam.zmsso.pac4j.ConfigBuilder.getInstance(ConfigBuilder.java:86) ~[?:?]
    at com.iwayvietnam.zmsso.BaseSsoHandler.<init>(BaseSsoHandler.java:56) ~[?:?]
    at com.iwayvietnam.zmsso.LoginHandler.<init>(LoginHandler.java:39) ~[?:?]
    at com.iwayvietnam.zmsso.ZmSsoExtension.init(ZmSsoExtension.java:57) ~[?:?]


Misagh

unread,
Sep 30, 2022, 3:08:22 AM9/30/22
to Jelle de Jong, Pac4j users mailing list
This looks like a problem now in pac4j, trying to load a class that
does not have the appropriate constructor:
https://github.com/pac4j/pac4j/blob/4.5.x/pac4j-saml/src/main/java/org/pac4j/saml/util/Configuration.java#L74

You probably need to fork the pac4j project and fix this issue on your
own, or upgrade.
> To view this discussion on the web visit https://groups.google.com/d/msgid/pac4j-users/18fa8e6a-d11b-4153-802c-2f6135fabb08n%40googlegroups.com.

Jelle de Jong

unread,
Oct 3, 2022, 2:47:12 AM10/3/22
to Pac4j users mailing list
Thank you for the hints and tips. I managed to get the code running and working with keycloak idp.

I updated the dependencies of the jar file by building with maven instead of ant jar and it started to work with the addition of a few extra jar files.
Reply all
Reply to author
Forward
0 new messages