Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LogFactory and LogFactoryService was unintentionally initialized at build time #6711

Closed
piotrooo opened this issue May 31, 2023 · 7 comments
Closed
Assignees
Labels

Comments

@piotrooo
Copy link

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 java.base@19.0.1/java.lang.Class.getConstructor0(DynamicHub.java:3641) ~[export-service:na]
	at java.base@19.0.1/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 java.base@19.0.1/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 java.base@19.0.1/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?

@fniephaus
Copy link
Member

@sdeleuze could you take a look at this please?

@fniephaus fniephaus added the spring spring related issue label May 31, 2023
@sdeleuze
Copy link
Collaborator

@piotrooo Can you please share a repro that uses Spring Boot 3.x?

@piotrooo
Copy link
Author

@sdeleuze no problem - here you are. If you need something more let me know.

export-service.zip

@sdeleuze
Copy link
Collaborator

This is triggered by the dependencies like com.opencsv:opencsv having a transitive dependency on commons-logging:commons-logging which conflicts with the implementation provided in spring-jcl.

Exclude the dependency with the code below and remove the buildArgs customization and your app will compile and run fine.

configurations.all {
    exclude group:"commons-logging", module: "commons-logging"
}

@sdeleuze sdeleuze closed this as not planned Won't fix, can't repro, duplicate, stale May 31, 2023
@piotrooo
Copy link
Author

piotrooo commented May 31, 2023

@sdeleuze yea one problem solved. This fixes build process. But, still in the runtime I have an exception:

java.lang.NoSuchMethodException: org.apache.logging.log4j.message.DefaultFlowMessageFactory.<init>()

Application runs correctly.

Full stack:

2023-05-31T18:36:06.111+02:00 ERROR 2111249 --- [nio-8080-exec-1] 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 java.base@19.0.1/java.lang.Class.getConstructor0(DynamicHub.java:3641) ~[export-service:na]
	at java.base@19.0.1/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 java.base@19.0.1/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 java.base@19.0.1/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]

@piotrooo
Copy link
Author

piotrooo commented May 31, 2023

Ok, I fixed it adding:

reflect-config.json
[
  {
    "name": "org.apache.logging.log4j.message.DefaultFlowMessageFactory",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "org.apache.logging.log4j.message.ParameterizedMessageFactory",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "org.apache.poi.ss.formula.udf.IndexedUDFFinder",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  }
]
resource-config.json
{
  "resources": [
    {
      "pattern": "\\Qschemaorg_apache_xmlbeans/system/sD023D6490046BA0250A839A9AD24C443/ctbookviewf677type.xsb\\E"
    },
    {
      "pattern": "\\Qschemaorg_apache_xmlbeans/system/sD023D6490046BA0250A839A9AD24C443/ctbookviewsb864type.xsb\\E"
    },
    {
      "pattern": "\\Qschemaorg_apache_xmlbeans/system/sD023D6490046BA0250A839A9AD24C443/ctborderf935type.xsb\\E"
    },
    {
      "pattern": "\\Qschemaorg_apache_xmlbeans/system/sD023D6490046BA0250A839A9AD24C443/ctborderpre497type.xsb\\E"
    },
    {
      "pattern": "\\Qschemaorg_apache_xmlbeans/system/sD023D6490046BA0250A839A9AD24C443/ctcolord2c2type.xsb\\E"
    },
    {
      "pattern": "\\Qschemaorg_apache_xmlbeans/system/sD023D6490046BA0250A839A9AD24C443/ctfill550ctype.xsb\\E"
    },
    {
      "pattern": "\\Qschemaorg_apache_xmlbeans/system/sD023D6490046BA0250A839A9AD24C443/ctfont14d8type.xsb\\E"
    },
    {
      "pattern": "\\Qschemaorg_apache_xmlbeans/system/sD023D6490046BA0250A839A9AD24C443/ctfontname2dc3type.xsb\\E"
    },
    {
      "pattern": "\\Qschemaorg_apache_xmlbeans/system/sD023D6490046BA0250A839A9AD24C443/ctfontschemebf5dtype.xsb\\E"
    },
    {
      "pattern": "\\Qschemaorg_apache_xmlbeans/system/sD023D6490046BA0250A839A9AD24C443/ctfontsizeb3b9type.xsb\\E"
    },
    {
      "pattern": "\\Qschemaorg_apache_xmlbeans/system/sD023D6490046BA0250A839A9AD24C443/ctintproperty32c3type.xsb\\E"
    },
    {
      "pattern": "\\Qschemaorg_apache_xmlbeans/system/sD023D6490046BA0250A839A9AD24C443/ctpatternfill7452type.xsb\\E"
    },
    {
      "pattern": "\\Qschemaorg_apache_xmlbeans/system/sD023D6490046BA0250A839A9AD24C443/ctproperties2c18type.xsb\\E"
    },
    {
      "pattern": "\\Qschemaorg_apache_xmlbeans/system/sD023D6490046BA0250A839A9AD24C443/ctproperties3f10type.xsb\\E"
    },
    {
      "pattern": "\\Qschemaorg_apache_xmlbeans/system/sD023D6490046BA0250A839A9AD24C443/ctsheets49fdtype.xsb\\E"
    },
    {
      "pattern": "\\Qschemaorg_apache_xmlbeans/system/sD023D6490046BA0250A839A9AD24C443/ctsst44f3type.xsb\\E"
    },
    {
      "pattern": "\\Qschemaorg_apache_xmlbeans/system/sD023D6490046BA0250A839A9AD24C443/ctstylesheet4257type.xsb\\E"
    },
    {
      "pattern": "\\Qschemaorg_apache_xmlbeans/system/sD023D6490046BA0250A839A9AD24C443/ctworkbook83c3type.xsb\\E"
    },
    {
      "pattern": "\\Qschemaorg_apache_xmlbeans/system/sD023D6490046BA0250A839A9AD24C443/ctworkbookpr03a5type.xsb\\E"
    },
    {
      "pattern": "\\Qschemaorg_apache_xmlbeans/system/sD023D6490046BA0250A839A9AD24C443/ctxf97f7type.xsb\\E"
    },
    {
      "pattern": "\\Qschemaorg_apache_xmlbeans/system/sD023D6490046BA0250A839A9AD24C443/index.xsb\\E"
    },
    {
      "pattern": "\\Qschemaorg_apache_xmlbeans/system/sD023D6490046BA0250A839A9AD24C443/properties288cdoctype.xsb\\E"
    },
    {
      "pattern": "\\Qschemaorg_apache_xmlbeans/system/sD023D6490046BA0250A839A9AD24C443/propertiesee84doctype.xsb\\E"
    },
    {
      "pattern": "\\Qschemaorg_apache_xmlbeans/system/sD023D6490046BA0250A839A9AD24C443/sstf81fdoctype.xsb\\E"
    },
    {
      "pattern": "\\Qschemaorg_apache_xmlbeans/system/sD023D6490046BA0250A839A9AD24C443/stborderid1a80type.xsb\\E"
    },
    {
      "pattern": "\\Qschemaorg_apache_xmlbeans/system/sD023D6490046BA0250A839A9AD24C443/stcellstylexfid70c7type.xsb\\E"
    },
    {
      "pattern": "\\Qschemaorg_apache_xmlbeans/system/sD023D6490046BA0250A839A9AD24C443/stfillida097type.xsb\\E"
    },
    {
      "pattern": "\\Qschemaorg_apache_xmlbeans/system/sD023D6490046BA0250A839A9AD24C443/stfontid9d63type.xsb\\E"
    },
    {
      "pattern": "\\Qschemaorg_apache_xmlbeans/system/sD023D6490046BA0250A839A9AD24C443/stfontschemef36dtype.xsb\\E"
    },
    {
      "pattern": "\\Qschemaorg_apache_xmlbeans/system/sD023D6490046BA0250A839A9AD24C443/stnumfmtid76fbtype.xsb\\E"
    },
    {
      "pattern": "\\Qschemaorg_apache_xmlbeans/system/sD023D6490046BA0250A839A9AD24C443/stpatterntype7939type.xsb\\E"
    },
    {
      "pattern": "\\Qschemaorg_apache_xmlbeans/system/sD023D6490046BA0250A839A9AD24C443/stxstring1198type.xsb\\E"
    },
    {
      "pattern": "\\Qschemaorg_apache_xmlbeans/system/sD023D6490046BA0250A839A9AD24C443/stylesheet5d8bdoctype.xsb\\E"
    }
  ],
  "bundles": [
    {
      "name": "org.apache.xmlbeans.impl.regex.message"
    }
  ]
}

But new error occurs:

ERROR StatusLogger Unable to load services for service class org.apache.logging.log4j.spi.Provider
 java.lang.NoSuchMethodException: no such method: java.util.ServiceLoader.load(Class,ClassLoader)ServiceLoader/invokeStatic
	at java.base@19.0.1/java.lang.invoke.MemberName.makeAccessException(MemberName.java:976)
	at java.base@19.0.1/java.lang.invoke.MemberName$Factory.resolveOrFail(MemberName.java:1117)
	at java.base@19.0.1/java.lang.invoke.MethodHandles$Lookup.resolveOrFail(MethodHandles.java:3664)
	at java.base@19.0.1/java.lang.invoke.MethodHandles$Lookup.findStatic(MethodHandles.java:2598)
	at org.apache.logging.log4j.util.ServiceLoaderUtil.callServiceLoader(ServiceLoaderUtil.java:108)
	at org.apache.logging.log4j.util.ServiceLoaderUtil$ServiceLoaderSpliterator.<init>(ServiceLoaderUtil.java:146)
	at org.apache.logging.log4j.util.ServiceLoaderUtil.loadClassloaderServices(ServiceLoaderUtil.java:101)
	at org.apache.logging.log4j.util.ServiceLoaderUtil.loadServices(ServiceLoaderUtil.java:83)
	at org.apache.logging.log4j.util.ServiceLoaderUtil.loadServices(ServiceLoaderUtil.java:77)
	at org.apache.logging.log4j.util.ProviderUtil.<init>(ProviderUtil.java:67)
	at org.apache.logging.log4j.util.ProviderUtil.lazyInit(ProviderUtil.java:145)
	at org.apache.logging.log4j.util.ProviderUtil.hasProviders(ProviderUtil.java:129)
	at org.apache.logging.log4j.LogManager.<clinit>(LogManager.java:90)
	at org.apache.poi.xssf.streaming.SXSSFWorkbook.<clinit>(SXSSFWorkbook.java:111)
	at com.sample.exportservice.exporter.WorkbookCreator.<init>(WorkbookCreator.java:32)
	at com.sample.exportservice.exporter.ExcelGenerator.generateXls(ExcelGenerator.java:8)
	at com.sample.exportservice.exporter.Exporter.convert(Exporter.java:37)
	at com.sample.exportservice.exporter.Exporter.execute(Exporter.java:24)
	at com.sample.exportservice.HelloController.export(ExportServiceApplication.java:39)
	at java.base@19.0.1/java.lang.reflect.Method.invoke(Method.java:578)
	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:207)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:152)
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:884)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797)
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1081)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:974)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1011)
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
	at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:166)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:894)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.base@19.0.1/java.lang.Thread.run(Thread.java:1589)
	at org.graalvm.nativeimage.builder/com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:775)
	at org.graalvm.nativeimage.builder/com.oracle.svm.core.posix.thread.PosixPlatformThreads.pthreadStartRoutine(PosixPlatformThreads.java:203)
Caused by: java.lang.NoSuchMethodError: java.util.ServiceLoader.load(java.lang.Class, java.lang.ClassLoader)
	at org.graalvm.nativeimage.builder/com.oracle.svm.core.methodhandles.Util_java_lang_invoke_MethodHandleNatives.resolve(Target_java_lang_invoke_MethodHandleNatives.java:345)
	at java.base@19.0.1/java.lang.invoke.MethodHandleNatives.resolve(MethodHandleNatives.java:223)
	at java.base@19.0.1/java.lang.invoke.MemberName$Factory.resolve(MemberName.java:1085)
	at java.base@19.0.1/java.lang.invoke.MemberName$Factory.resolveOrFail(MemberName.java:1114)
	... 66 more
ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console...
2023-05-31T19:31:10.476+02:00 ERROR 2196448 --- [nio-8080-exec-1] 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

@sdeleuze
Copy link
Collaborator

sdeleuze commented Jun 1, 2023

As far as I know, Log4j2 does not support native images.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants