-
Suggestion
-
Resolution: Answered
-
None
-
None
Setting up Active Directory throws a Could not initialize class org.springframework.ldap.core.support.LdapContextSource
Seems like spring-ldap-core jar is missing from:
confluence/WEB-INF/lib/spring-ldap-core-2.3.2.RELEASE.jar
Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.springframework.ldap.core.support.LdapContextSource
at com.atlassian.crowd.directory.LdapContextSourceFactory.createContextSource(LdapContextSourceFactory.java:73)
at com.atlassian.crowd.directory.LdapContextSourceProvider.createContextSource(LdapContextSourceProvider.java:32)
at com.atlassian.crowd.directory.SpringLDAPConnector.getContextSource(SpringLDAPConnector.java:204)
at com.atlassian.crowd.directory.SpringLDAPConnector.setAttributes(SpringLDAPConnector.java:184)
at com.atlassian.crowd.directory.loader.RemoteDirectoryInstanceFactoryUtil.newRemoteDirectory(RemoteDirectoryInstanceFactoryUtil.java:42)
at com.atlassian.crowd.directory.loader.RemoteDirectoryInstanceFactoryUtil.newRemoteDirectory(RemoteDirectoryInstanceFactoryUtil.java:63)
at com.atlassian.crowd.directory.loader.LDAPDirectoryInstanceLoaderImpl.getRawDirectory(LDAPDirectoryInstanceLoaderImpl.java:30)
at com.atlassian.crowd.directory.loader.DelegatingDirectoryInstanceLoaderImpl.getRawDirectory(DelegatingDirectoryInstanceLoaderImpl.java:76)
at com.atlassian.crowd.directory.loader.DbCachingRemoteDirectoryInstanceLoader.getRawDirectory(DbCachingRemoteDirectoryInstanceLoader.java:101)
at com.atlassian.crowd.directory.loader.DelegatingDirectoryInstanceLoaderImpl.getRawDirectory(DelegatingDirectoryInstanceLoaderImpl.java:76)
at com.atlassian.confluence.impl.user.crowd.CacheableDirectoryInstanceLoader.getRawDirectory(CacheableDirectoryInstanceLoader.java:92)
at com.atlassian.crowd.embedded.core.CrowdDirectoryServiceImpl.testConnection(CrowdDirectoryServiceImpl.java:88)
at com.atlassian.confluence.user.crowd.ConfluenceCrowdDirectoryService.testConnection(ConfluenceCrowdDirectoryService.java:98)
at jdk.internal.reflect.GeneratedMethodAccessor2471.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethod
Workaround:
The jpms-args.txt file should contain the --add-exports parameters, it should be referenced in the setenv.sh:
# Add various JPMS arguments to allow Confluence to work on Java 17
CATALINA_OPTS="@$CATALINA_HOME/confluence/WEB-INF/jpms-args.txt ${CATALINA_OPTS}"