Skip to content

missing class only in native image #721

Closed
@diginote

Description

@diginote

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?

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions