Closed
Description
Hi Team,
my spring boot app (v3.0.1) uses ldapTempate.search
to get information from ldap server. On JVM-mode the app starts fine but in native mode it throws java.lang.ClassNotFoundException: javax.naming.ldap.PagedResultsResponseControl
.
java.lang.ClassNotFoundException: javax.naming.ldap.PagedResultsResponseControl
myapp | at [email protected]/java.lang.Class.forName(DynamicHub.java:1132) ~[com.company.apps.AppInfoServiceApplication:na]
myapp | at [email protected]/java.lang.Class.forName(DynamicHub.java:1105) ~[com.company.apps.AppInfoServiceApplication:na]
myapp | at org.springframework.ldap.control.AbstractFallbackRequestAndResponseControlDirContextProcessor.loadControlClasses(AbstractFallbackRequestAndResponseControlDirContextProcessor.java:110) ~[com.company.apps.AppInfoServiceApplication:3.0.0]
myapp | at org.springframework.ldap.control.PagedResultsDirContextProcessor.<init>(PagedResultsDirContextProcessor.java:81) ~[na:na]
myapp | at org.springframework.ldap.control.PagedResultsDirContextProcessor.<init>(PagedResultsDirContextProcessor.java:60) ~[na:na]
myapp | at com.company.apps.service.ldap.LdapServiceHelper.loadAllStaff(LdapServiceHelper.java:42) ~[com.company.apps.AppInfoServiceApplication:na]
myapp | at [email protected]/java.lang.reflect.Method.invoke(Method.java:568) ~[com.company.apps.AppInfoServiceApplication:na]
myapp | at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84) ~[na:na]
myapp | at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) ~[com.company.apps.AppInfoServiceApplication:6.0.3]
myapp | at [email protected]/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[na:na]
myapp | at [email protected]/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) ~[com.company.apps.AppInfoServiceApplication:na]
myapp | at [email protected]/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) ~[na:na]
myapp | at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[com.company.apps.AppInfoServiceApplication:na]
myapp | at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
myapp | at [email protected]/java.lang.Thread.run(Thread.java:833) ~[com.company.apps.AppInfoServiceApplication:na]
myapp | at com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:775) ~[com.company.apps.AppInfoServiceApplication:na]
myapp | at com.oracle.svm.core.posix.thread.PosixPlatformThreads.pthreadStartRoutine(PosixPlatformThreads.java:203) ~[na:na]
I use the following dependency in my pom.yml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-ldap</artifactId>
</dependency>
The LdapTemplate
is autowired:
...
@Autowired
private LdapTemplate ldapTemplate;
...
PagedResultsCookie cookie = new PagedResultsCookie(null);
final PagedResultsDirContextProcessor pagedResultProcessor = new PagedResultsDirContextProcessor(Integer.MAX_VALUE);
SearchControls searchControls = new SearchControls();
searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE);
List<MyData> ldapSearchResult = ldapTemplate.search(
myLdapSearch.getSearchBase(),
myLdapSearch.getSearchFilter(),
searchControls,
myHelper.getExampleMapper(),
pagedResultProcessor
);
Anybody an idea how to solve this issue?