Vaadin 8部署Tomcat 9后页面空白,缺失指定缓存JS文件求助
Vaadin 8 + Tomcat 9 空白页及缓存JS缺失问题解决方案
清理构建与服务器缓存
- 删除项目根目录下的
target(Maven)或build(Gradle)目录,同时清理IDE本地缓存(如IntelliJ的.idea文件夹、Eclipse的.metadata目录) - 执行构建工具清理命令:
mvn clean(Maven)或./gradlew clean(Gradle) - 停止Tomcat,删除其
work、temp目录,以及webapps下的项目部署包,重新打包部署
- 删除项目根目录下的
校验Vaadin构建插件配置
- Maven项目需确保
vaadin-maven-plugin已绑定build-frontend目标到编译阶段,配置示例:<plugin> <groupId>com.vaadin</groupId> <artifactId>vaadin-maven-plugin</artifactId> <version>${vaadin.version}</version> <executions> <execution> <goals> <goal>build-frontend</goal> </goals> <phase>compile</phase> </execution> </executions> </plugin> - Gradle项目需确保
vaadin插件的buildFrontend任务已绑定到compileJava之后,保证前端资源能正确生成
- Maven项目需确保
检查Tomcat与项目部署配置
- 确认Tomcat的
conf/web.xml未拦截/VAADIN/**路径的请求,避免Vaadin静态资源被过滤 - 校验项目
WEB-INF/web.xml中VaadinServlet映射正确,确保所有请求能被Vaadin处理,示例:<servlet> <servlet-name>Vaadin Application Servlet</servlet-name> <servlet-class>com.vaadin.server.VaadinServlet</servlet-class> <init-param> <param-name>UI</param-name> <param-value>你的UI类全路径</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>Vaadin Application Servlet</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping>
- 确认Tomcat的
排查前端资源与浏览器问题
- 强制刷新浏览器(Ctrl+F5 / Cmd+Shift+R),清除浏览器缓存后重新访问
- 解压部署的war包,检查
VAADIN/static/client/目录下是否存在报错中提到的缓存JS文件,若缺失则需重新执行前端构建
确认版本兼容性
- 使用Vaadin 8.14.0及以上版本,该版本修复了部分与Tomcat 9的兼容性问题,避免因版本不匹配导致资源生成异常
内容的提问来源于stack exchange,提问作者Calvin Liu
相关产品推荐
相关产品推荐

