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

Vaadin 14生产环境访问无效路由返回可用路由列表问题排查

问题原因及解决办法

1. 确认生产模式构建参数是否真正生效

使用-pProduction构建WAR时,需确保构建工具(Maven/Gradle)正确激活了生产环境配置:

  • 查看Maven构建日志,确认输出包含Activated profiles: Production,且pom.xml中Production profile已定义vaadin.productionMode=true并排除开发依赖。
  • Gradle项目需确认-Pproduction参数触发了vaadin { productionMode = true }配置,且自动排除开发依赖。

2. 检查Servlet初始化参数(非Spring Boot项目重点)

Vaadin优先读取Servlet初始化参数判断生产模式,若未使用Spring Boot,application.properties配置可能不生效:

  • 在web.xml中为Vaadin Servlet添加初始化参数:
<servlet>
    <servlet-name>YourVaadinServlet</servlet-name>
    <servlet-class>com.vaadin.flow.server.VaadinServlet</servlet-class>
    <init-param>
        <param-name>productionMode</param-name>
        <param-value>true</param-value>
    </init-param>
</servlet>

3. 配置Tomcat系统启动参数

Vaadin也会读取vaadin.productionMode系统属性,需确保Tomcat启动时传入该参数:

  • 修改Tomcat的catalina.sh(Linux)或catalina.bat(Windows),在启动参数中添加:
-Dvaadin.productionMode=true
  • 重启Tomcat后检查启动日志,确认参数已加载。

4. 清理Tomcat缓存与残留文件

旧的开发模式部署残留或缓存可能导致生产模式未生效:

  • 停止Tomcat,删除webapps下你的应用文件夹及对应WAR包,重新部署新构建的生产模式WAR。
  • 删除work/Catalina/localhost/[你的应用名]目录下所有缓存文件,再重启Tomcat。

5. 确认开发依赖已排除

生产模式下必须移除Vaadin开发相关依赖:

  • Maven中在Production profile里添加依赖排除:
<profile>
    <id>Production</id>
    <properties>
        <vaadin.productionMode>true</vaadin.productionMode>
    </properties>
    <dependencies>
        <dependency>
            <groupId>com.vaadin</groupId>
            <artifactId>vaadin-core</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>com.vaadin</groupId>
                    <artifactId>vaadin-dev-mode</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>
</profile>
  • Gradle项目确保生产模式配置中包含excludeDevDependencies()。

内容的提问来源于stack exchange,提问作者Holger Münch

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 08:30:46