You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vaadin 24.4生产模式构建异常(Tomcat10启动失败)求助及解决经验

Vaadin 24.4 + Spring Boot WAR部署Tomcat 10生产模式启动异常解决

问题背景

基于Spring的Vaadin Starter项目构建WAR包,部署到独立Tomcat 10后,WAR可正常部署但启动失败。启动时Vaadin报错,提示Tomcat的bin目录“不是Maven或Gradle项目”,要求执行prepare-frontend Maven目标。我们使用Gradle 8.8,多次在vaadinBuildFrontend前后执行vaadinPrepareFrontend任务,但生成的flow-build-info.json与官方文档描述差异极大,且该文件实际由build-frontend任务生成,而非prepare-frontend。

问题排查与解决

最终确认问题并非flow-build-info.json导致,推测官方文档已过时,核心解决要点如下:

  • 必须配置生产模式开关:由于项目基于Spring Boot Starter,仅靠构建脚本配置不够,需在application.properties中明确开启生产模式:

    vaadin.productionMode=true
    
  • 根上下文部署需额外配置:若要将Vaadin应用部署为根上下文/的网站,需额外调整Tomcat的上下文配置(比如修改server.xml中Host节点的appBase,或添加单独的Context节点),避免资源路径冲突。

  • 拆分开发模式依赖简化部署:默认Vaadin依赖包含开发模式Jar包,建议将开发相关依赖单独拆分到Gradle的开发环境依赖块,仅在开发阶段引入,减少生产包冗余:

    dependencies {
        // 生产环境核心依赖
        implementation 'com.vaadin:vaadin-spring-boot-starter'
        
        // 仅开发环境加载
        developmentOnly 'com.vaadin:vaadin-dev-mode-starter'
    }
    

内容的提问来源于stack exchange,提问作者K. Taylor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 06:05:01