Closed as not planned
Closed as not planned
Description
I'm trying to use a org.apache.poi:poi-ooxml:5.2.3
library in the Spring Boot 3.1 application.
I receive a following errors:
Error: Classes that should be initialized at run time got initialized during image building:
org.apache.commons.logging.LogFactory was unintentionally initialized at build time. org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler caused initialization of this class with the following trace:
at org.apache.commons.logging.LogFactory.<clinit>(LogFactory.java:136)
at jdk.internal.misc.Unsafe.ensureClassInitialized0(Unknown Source)
at jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1160)
------------------------------------------------------------------------------------------------------------------------
at jdk.internal.reflect.MethodHandleAccessorFactory.ensureClassInitialized(MethodHandleAccessorFactory.java:300)
at jdk.internal.reflect.MethodHandleAccessorFactory.newConstructorAccessor(MethodHandleAccessorFactory.java:103)
at jdk.internal.reflect.ReflectionFactory.newConstructorAccessor(ReflectionFactory.java:201)
at java.lang.reflect.Constructor.acquireConstructorAccessor(Constructor.java:547)
at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:497)
at java.lang.reflect.ReflectAccess.newInstance(ReflectAccess.java:128)
at jdk.internal.reflect.ReflectionFactory.newInstance(ReflectionFactory.java:306)
at java.lang.Class.newInstance(Class.java:684)
at org.apache.commons.logging.LogFactory.createFactory(LogFactory.java:1047)
at org.apache.commons.logging.LogFactory$2.run(LogFactory.java:960)
at java.security.AccessController.executePrivileged(AccessController.java:776)
at java.security.AccessController.doPrivileged(AccessController.java:318)
at org.apache.commons.logging.LogFactory.newFactory(LogFactory.java:957)
at org.apache.commons.logging.LogFactory.getFactory(LogFactory.java:552)
at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:655)
at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler.<clinit>(ReactiveTypeHandler.java:88)
org.apache.commons.logging.LogFactoryService was unintentionally initialized at build time. org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler caused initialization of this class with the following trace:
at org.apache.commons.logging.LogFactoryService.<clinit>(LogFactoryService.java)
at jdk.internal.misc.Unsafe.ensureClassInitialized0(Unknown Source)
at jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1160)
at jdk.internal.reflect.MethodHandleAccessorFactory.ensureClassInitialized(MethodHandleAccessorFactory.java:300)
at jdk.internal.reflect.MethodHandleAccessorFactory.newConstructorAccessor(MethodHandleAccessorFactory.java:103)
at jdk.internal.reflect.ReflectionFactory.newConstructorAccessor(ReflectionFactory.java:201)
at java.lang.reflect.Constructor.acquireConstructorAccessor(Constructor.java:547)
at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:497)
at java.lang.reflect.ReflectAccess.newInstance(ReflectAccess.java:128)
at jdk.internal.reflect.ReflectionFactory.newInstance(ReflectionFactory.java:306)
at java.lang.Class.newInstance(Class.java:684)
at org.apache.commons.logging.LogFactory.createFactory(LogFactory.java:1047)
at org.apache.commons.logging.LogFactory$2.run(LogFactory.java:960)
at java.security.AccessController.executePrivileged(AccessController.java:776)
at java.security.AccessController.doPrivileged(AccessController.java:318)
at org.apache.commons.logging.LogFactory.newFactory(LogFactory.java:957)
at org.apache.commons.logging.LogFactory.getFactory(LogFactory.java:552)
at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:655)
at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler.<clinit>(ReactiveTypeHandler.java:88)
I was tried to follow spring-attic/spring-native#434 steps, but when I set:
--initialize-at-build-time=org.apache.commons.logging.LogFactory,org.apache.commons.logging.LogFactoryService
build was successful but at the runtime I received a following exception:
2023-05-31T08:08:45.694+02:00 ERROR 1124397 --- [nio-8080-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler dispatch failed: java.lang.ExceptionInInitializerError] with root cause
java.lang.NoSuchMethodException: org.apache.logging.log4j.message.DefaultFlowMessageFactory.<init>()
at [email protected]/java.lang.Class.getConstructor0(DynamicHub.java:3641) ~[export-service:na]
at [email protected]/java.lang.Class.newInstance(DynamicHub.java:665) ~[export-service:na]
at org.apache.logging.log4j.spi.AbstractLogger.createDefaultFlowMessageFactory(AbstractLogger.java:240) ~[export-service:2.20.0]
at org.apache.logging.log4j.spi.AbstractLogger.<init>(AbstractLogger.java:141) ~[export-service:2.20.0]
at org.apache.logging.log4j.status.StatusLogger.<init>(StatusLogger.java:141) ~[na:na]
at org.apache.logging.log4j.status.StatusLogger.<clinit>(StatusLogger.java:91) ~[na:na]
at org.apache.logging.log4j.LogManager.<clinit>(LogManager.java:61) ~[na:na]
at org.apache.poi.xssf.streaming.SXSSFWorkbook.<clinit>(SXSSFWorkbook.java:111) ~[na:na]
at com.sample.exportservice.exporter.WorkbookCreator.<init>(WorkbookCreator.java:32) ~[na:na]
at com.sample.exportservice.exporter.ExcelGenerator.generateXls(ExcelGenerator.java:8) ~[na:na]
at com.sample.exportservice.exporter.Exporter.convert(Exporter.java:37) ~[export-service:na]
at com.sample.exportservice.exporter.Exporter.execute(Exporter.java:24) ~[export-service:na]
at com.sample.exportservice.HelloController.export(ExportServiceApplication.java:39) ~[export-service:na]
at [email protected]/java.lang.reflect.Method.invoke(Method.java:578) ~[export-service:na]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:207) ~[export-service:6.0.9]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:152) ~[export-service:6.0.9]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[export-service:6.0.9]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:884) ~[export-service:6.0.9]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797) ~[export-service:6.0.9]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[export-service:6.0.9]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1081) ~[export-service:6.0.9]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:974) ~[export-service:6.0.9]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1011) ~[export-service:6.0.9]
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[export-service:6.0.9]
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) ~[export-service:6.0]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[export-service:6.0.9]
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[export-service:6.0]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) ~[na:na]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[na:na]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[export-service:10.1.8]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[na:na]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[na:na]
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[export-service:6.0.9]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[export-service:6.0.9]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[na:na]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[na:na]
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[export-service:6.0.9]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[export-service:6.0.9]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[na:na]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[na:na]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[export-service:6.0.9]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[export-service:6.0.9]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) ~[na:na]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) ~[na:na]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:166) ~[na:na]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) ~[na:na]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) ~[export-service:10.1.8]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) ~[na:na]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) ~[export-service:10.1.8]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[na:na]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341) ~[na:na]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390) ~[na:na]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[export-service:10.1.8]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:894) ~[na:na]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) ~[na:na]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[export-service:10.1.8]
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[na:na]
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[na:na]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[na:na]
at [email protected]/java.lang.Thread.run(Thread.java:1589) ~[export-service:na]
at org.graalvm.nativeimage.builder/com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:775) ~[export-service:na]
at org.graalvm.nativeimage.builder/com.oracle.svm.core.posix.thread.PosixPlatformThreads.pthreadStartRoutine(PosixPlatformThreads.java:203) ~[na:na]
The application is super plain and easy. What can I do to fix this issue?