升级Hilla 2后运行时加载META-INF/frontend/lumo-includes.ts报错
Hilla 2升级/新建项目启动报错:Illegal access: web application instance has been stopped already
错误信息
java.lang.IllegalStateException: Illegal access: this web application instance has been stopped already. Could not load [META-INF/frontend/lumo-includes.ts]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access.
项目创建步骤
- 初始化React版Hilla项目:
npx @hilla/cli init --react my-hilla-app - 编译项目:
mvn clean install - 启动项目:
mnvw
完整堆栈跟踪
java.lang.IllegalStateException: Illegal access: this web application instance has been stopped already. Could not load [META-INF/frontend/lumo-includes.ts]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access. at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1457) ~[tomcat-embed-core-10.1.5.jar:10.1.5] at org.apache.catalina.loader.WebappClassLoaderBase.getResource(WebappClassLoaderBase.java:1047) ~[tomcat-embed-core-10.1.5.jar:10.1.5] at com.vaadin.flow.server.frontend.scanner.ClassFinder$DefaultClassFinder.getResource(ClassFinder.java:105) ~[flow-server-24.0.0.jar:24.0.0] at com.vaadin.flow.server.frontend.scanner.ClassFinder$CachedClassFinder.getResource(ClassFinder.java:159) ~[flow-server-24.0.0.jar:24.0.0] at com.vaadin.flow.server.frontend.TaskUpdateImports$UpdateMainImportsFile.getResource(TaskUpdateImports.java:181) ~[flow-server-24.0.0.jar:24.0.0] at com.vaadin.flow.server.frontend.AbstractUpdateImports.hasMetaInfResource(AbstractUpdateImports.java:573) ~[flow-server-24.0.0.jar:24.0.0] at com.vaadin.flow.server.frontend.AbstractUpdateImports.resolveResource(AbstractUpdateImports.java:264) ~[flow-server-24.0.0.jar:24.0.0] at com.vaadin.flow.server.frontend.AbstractUpdateImports.lambda$resolveModules$1(AbstractUpdateImports.java:192) ~[flow-server-24.0.0.jar:24.0.0] at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[na:na] at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) ~[na:na] at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) ~[na:na] at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[na:na] at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[na:na] at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) ~[na:na] at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:na] at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) ~[na:na] at com.vaadin.flow.server.frontend.AbstractUpdateImports.resolveModules(AbstractUpdateImports.java:193) ~[flow-server-24.0.0.jar:24.0.0] at com.vaadin.flow.server.frontend.AbstractUpdateImports.collectModules(AbstractUpdateImports.java:289) ~[flow-server-24.0.0.jar:24.0.0] at com.vaadin.flow.server.frontend.AbstractUpdateImports.run(AbstractUpdateImports.java:102) ~[flow-server-24.0.0.jar:24.0.0] at com.vaadin.flow.server.frontend.TaskUpdateImports.execute(TaskUpdateImports.java:362) ~[flow-server-24.0.0.jar:24.0.0] at com.vaadin.flow.server.frontend.NodeTasks.execute(NodeTasks.java:301) ~[flow-server-24.0.0.jar:24.0.0] at com.vaadin.base.devserver.startup.DevModeInitializer.runNodeTasks(DevModeInitializer.java:372) ~[vaadin-dev-server-24.0.0.jar:na] at com.vaadin.base.devserver.startup.DevModeInitializer.lambda$initDevModeHandler$0(DevModeInitializer.java:313) ~[vaadin-dev-server-24.0.0.jar:na] at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804) ~[na:na] at java.base/java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1796) ~[na:na] at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) ~[na:na] at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182) ~[na:na] at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655) ~[na:na] at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622) ~[na:na] at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165) ~[na:na]
解决方案
1. 彻底清理项目缓存
- 终止所有相关进程(包括Java和Node.js进程)
- 删除项目根目录下的
target、node_modules目录,以及package-lock.json文件 - 重新执行
mvn clean install完成编译,再用mnvw启动项目
2. 验证Java版本兼容性
Hilla 2要求Java 17或更高版本,执行以下命令确认版本符合要求:
java -version
3. 禁用Dev模式异步任务
在src/main/resources/application.properties中添加以下配置,避免异步线程在应用未完全启动时加载资源:
vaadin.devmode.init.tasks.async=false
4. 更新Hilla CLI到最新版本
旧版本CLI可能生成有问题的项目模板,执行以下命令更新CLI:
npm install -g @hilla/cli
之后重新初始化项目测试。
5. 检查IDE自动重启机制
如果使用VS Code的Spring Boot自动重启插件,可能导致应用重复启动或未完全停止就重启,建议手动停止所有进程后再启动项目。
内容的提问来源于stack exchange,提问作者Gezahegn Geleta
相关产品推荐
相关产品推荐

