Spring Boot GraalVM Native Image JRT File System is Disabled Error

239 Views Asked by At

I´m trying to convert a spring boot 2.x project to spring boot 3.1.3 and compile it with the native profile for the graalvm.

I have followed this guide so far: https://softwaremill.com/how-to-migrate-a-spring-boot-app-to-a-native-image/#before-migration

I was able compile and run the project with spring AOT enabled, generating the reachability metadata and after that successfully built the native image. My current env is: W10 22H2 x64 | openJDK 17.0.8 | graalVM CE 22.3.3 | MSVC 14.16.27023.

When i run the executable it starts very quickly, but when i try to make any requests to the http endpoints of the application i get the following error:

15:36:01.330 [ERROR] o.a.c.c.C.[.[localhost] - Exception Processing ErrorPage[errorCode=0, location=/error]
jakarta.servlet.ServletException: Servlet.init() for servlet [dispatcherServlet] threw exception
        at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:960)
        at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:662)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:621)
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:410)
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:340)
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:277)
        at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:359)
        at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:222)
        at org.apache.catalina.core.StandardHostValve.throwable(StandardHostValve.java:305)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:149)
        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:391)
        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:1740)
        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 [email protected]/java.lang.Thread.run(Thread.java:833)
        at org.graalvm.nativeimage.builder/com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:775)
        at org.graalvm.nativeimage.builder/com.oracle.svm.core.windows.WindowsPlatformThreads.osThreadStartRoutine(WindowsPlatformThreads.java:178)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'resourceHandlerMapping': Instantiation of supplied bean failed
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainFromSupplier(AbstractAutowireCapableBeanFactory.java:1220)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1158)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:560)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:520)
        at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:663)
        at org.springframework.context.support.AbstractApplicationContext.getBeansOfType(AbstractApplicationContext.java:1309)
        at org.springframework.beans.factory.BeanFactoryUtils.beansOfTypeIncludingAncestors(BeanFactoryUtils.java:368)
        at org.springframework.web.servlet.DispatcherServlet.initHandlerMappings(DispatcherServlet.java:602)
        at org.springframework.web.servlet.DispatcherServlet.initStrategies(DispatcherServlet.java:508)
        at org.springframework.web.servlet.DispatcherServlet.onRefresh(DispatcherServlet.java:497)
        at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:603)
        at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:537)
        at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:169)
        at jakarta.servlet.GenericServlet.init(GenericServlet.java:143)
        at jakarta.servlet.http.HttpServlet.init(HttpServlet.java:121)
        at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:944)
        ... 23 common frames omitted
Caused by: io.github.classgraph.ClassGraphException: Uncaught exception during scan
        at io.github.classgraph.ClassGraph.scan(ClassGraph.java:1570)
        at io.github.classgraph.ClassGraph.scan(ClassGraph.java:1587)
        at io.github.classgraph.ClassGraph.scan(ClassGraph.java:1600)
        at org.webjars.WebJarAssetLocator.scanForWebJars(WebJarAssetLocator.java:188)
        at org.webjars.WebJarAssetLocator.<init>(WebJarAssetLocator.java:210)
        at org.webjars.WebJarAssetLocator.<init>(WebJarAssetLocator.java:194)
        at org.springframework.web.servlet.resource.WebJarsResourceResolver.<init>(WebJarsResourceResolver.java:63)
        at org.springframework.web.servlet.config.annotation.ResourceChainRegistration.getResourceResolvers(ResourceChainRegistration.java:114)
        at org.springframework.web.servlet.config.annotation.ResourceHandlerRegistration.getRequestHandler(ResourceHandlerRegistration.java:215)
        at org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry.getRequestHandler(ResourceHandlerRegistry.java:178)
        at org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry.getHandlerMapping(ResourceHandlerRegistry.java:168)
        at org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport.resourceHandlerMapping(WebMvcConfigurationSupport.java:589)
        at org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport__BeanDefinitions.lambda$getResourceHandlerMappingInstanceSupplier$7(WebMvcConfigurationSupport__BeanDefinitions.java:172)
        at org.springframework.util.function.ThrowingBiFunction.apply(ThrowingBiFunction.java:68)
        at org.springframework.util.function.ThrowingBiFunction.apply(ThrowingBiFunction.java:54)
        at org.springframework.beans.factory.aot.BeanInstanceSupplier.lambda$get$2(BeanInstanceSupplier.java:202)
        at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:58)
        at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:46)
        at org.springframework.beans.factory.aot.BeanInstanceSupplier.invokeBeanSupplier(BeanInstanceSupplier.java:214)
        at org.springframework.beans.factory.aot.BeanInstanceSupplier.get(BeanInstanceSupplier.java:202)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.obtainInstanceFromSupplier(DefaultListableBeanFactory.java:947)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainFromSupplier(AbstractAutowireCapableBeanFactory.java:1214)
        ... 42 common frames omitted
Caused by: java.lang.IllegalArgumentException: Exception while invoking method "list"
        at nonapi.io.github.classgraph.utils.ReflectionUtils.invokeMethod(ReflectionUtils.java:268)
        at nonapi.io.github.classgraph.utils.ReflectionUtils.invokeMethod(ReflectionUtils.java:301)
        at io.github.classgraph.ModuleReaderProxy.list(ModuleReaderProxy.java:107)
        at io.github.classgraph.ClasspathElementModule.scanPaths(ClasspathElementModule.java:286)
        at io.github.classgraph.Scanner$5.processWorkUnit(Scanner.java:1095)
        at io.github.classgraph.Scanner$5.processWorkUnit(Scanner.java:1089)
        at nonapi.io.github.classgraph.concurrency.WorkQueue.runWorkLoop(WorkQueue.java:246)
        at nonapi.io.github.classgraph.concurrency.WorkQueue.access$000(WorkQueue.java:50)
        at nonapi.io.github.classgraph.concurrency.WorkQueue$1.call(WorkQueue.java:201)
        at nonapi.io.github.classgraph.concurrency.WorkQueue$1.call(WorkQueue.java:198)
        at [email protected]/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        ... 3 common frames omitted
Caused by: java.lang.reflect.InvocationTargetException: null
        at [email protected]/java.lang.reflect.Method.invoke(Method.java:568)
        at nonapi.io.github.classgraph.utils.ReflectionUtils.invokeMethod(ReflectionUtils.java:260)
        ... 15 common frames omitted
Caused by: com.oracle.svm.core.jdk.UnsupportedFeatureError: JRT file system is disabled
        at org.graalvm.nativeimage.builder/com.oracle.svm.core.util.VMError.unsupportedFeature(VMError.java:89)
        at [email protected]/jdk.internal.module.SystemModuleFinders$SystemImage.reader(SystemModuleFinders.java:139)
        at [email protected]/jdk.internal.module.SystemModuleFinders$ModuleContentSpliterator.<init>(SystemModuleFinders.java:527)
        at [email protected]/jdk.internal.module.SystemModuleFinders$SystemModuleReader.list(SystemModuleFinders.java:502)
        ... 17 common frames omitted
0

There are 0 best solutions below