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

Apache Tomcat无法访问Vaadin应用问题求助

问题描述

我正在做一个学校项目,搭建Web服务器以便和朋友们将Vaadin项目部署到互联网上。选用Apache Tomcat作为本地服务器,搭配ngrok实现内网穿透。Tomcat运行正常,但部署自己或他人的Vaadin应用时均出现错误。


当日Tomcat访问日志

127.0.0.1 - - [15/Nov/2022:09:26:16 -0500] GET / HTTP/1.1 200 11243
127.0.0.1 - - [15/Nov/2022:09:26:17 -0500] GET /apple-touch-icon-120x120-precomposed.png HTTP/1.1 404 795
127.0.0.1 - - [15/Nov/2022:09:26:17 -0500] GET /apple-touch-icon-120x120.png HTTP/1.1 404 783
127.0.0.1 - - [15/Nov/2022:09:26:17 -0500] GET /apple-touch-icon-precomposed.png HTTP/1.1 404 787
127.0.0.1 - - [15/Nov/2022:09:26:17 -0500] GET /apple-touch-icon.png HTTP/1.1 404 775
127.0.0.1 - - [15/Nov/2022:09:26:17 -0500] GET /favicon.ico HTTP/1.1 200 21630
127.0.0.1 - - [15/Nov/2022:09:35:55 -0500] GET /bg-nav.png HTTP/1.1 304 -
127.0.0.1 - - [15/Nov/2022:11:02:05 -0500] GET / HTTP/1.1 200 11243
127.0.0.1 - - [15/Nov/2022:11:02:06 -0500] GET /tomcat.css HTTP/1.1 304 -
127.0.0.1 - - [15/Nov/2022:11:02:06 -0500] GET /tomcat.svg HTTP/1.1 304 -
127.0.0.1 - - [15/Nov/2022:11:02:06 -0500] GET /bg-upper.png HTTP/1.1 304 -
127.0.0.1 - - [15/Nov/2022:11:02:06 -0500] GET /asf-logo-wide.svg HTTP/1.1 304 -
127.0.0.1 - - [15/Nov/2022:11:02:06 -0500] GET /bg-button.png HTTP/1.1 304 -
127.0.0.1 - - [15/Nov/2022:11:02:06 -0500] GET /bg-middle.png HTTP/1.1 304 -
127.0.0.1 - - [15/Nov/2022:11:02:15 -0500] GET /manager/html HTTP/1.1 401 2499
127.0.0.1 - manager [15/Nov/2022:11:02:33 -0500] GET /manager/html HTTP/1.1 200 19900
127.0.0.1 - - [15/Nov/2022:11:02:33 -0500] GET /manager/css/manager.css HTTP/1.1 304 -
127.0.0.1 - - [15/Nov/2022:11:02:33 -0500] GET /manager/images/tomcat.svg HTTP/1.1 304 -
127.0.0.1 - - [15/Nov/2022:11:02:33 -0500] GET /manager/images/asf-logo.svg HTTP/1.1 304 -
127.0.0.1 - - [15/Nov/2022:11:02:51 -0500] GET /icsprojects-version-1.0/ HTTP/1.1 404 783
127.0.0.1 - manager [15/Nov/2022:11:03:26 -0500] GET /manager/html HTTP/1.1 200 18316
127.0.0.1 - - [15/Nov/2022:11:18:00 -0500] GET /icsprojects-version-1.0/ HTTP/1.1 404 783
127.0.0.1 - - [15/Nov/2022:11:22:16 -0500] GET / HTTP/1.1 200 11243
127.0.0.1 - - [15/Nov/2022:11:22:20 -0500] GET /apple-touch-icon-120x120-precomposed.png HTTP/1.1 404 795
127.0.0.1 - - [15/Nov/2022:11:22:21 -0500] GET /apple-touch-icon-120x120.png HTTP/1.1 404 783
127.0.0.1 - - [15/Nov/2022:11:22:21 -0500] GET /apple-touch-icon-precomposed.png HTTP/1.1 404 787
127.0.0.1 - - [15/Nov/2022:11:22:24 -0500] GET /apple-touch-icon.png HTTP/1.1 404 775
127.0.0.1 - - [15/Nov/2022:11:22:24 -0500] GET /favicon.ico HTTP/1.1 200 21630

已尝试的操作

  • 部署自己开发的Vaadin应用
  • 部署他人开发的Vaadin应用
  • 确认应用已打包为war文件
  • 尝试使用gradle和maven构建
  • 详细检查pom.xml和build.gradle文件

排查与解决建议

  1. 确认war包部署状态
    检查Tomcat的webapps目录,确认war文件已被正确解压(启动Tomcat后会自动解压),解压后的文件夹名称需与访问路径一致(比如日志中访问的/icsprojects-version-1.0/,对应webapps下的icsprojects-version-1.0文件夹)。如果未自动解压,可手动解压后重启Tomcat。

  2. 查看Tomcat部署日志
    当前提供的是访问日志,需查看logs目录下的catalina.out或localhost.log,这里会记录应用部署时的具体报错(比如依赖缺失、类加载失败、版本兼容问题等),是定位问题的关键。

  3. 验证版本兼容性
    确保Vaadin版本与Tomcat版本匹配:

    • Vaadin 14+ 要求Tomcat 9.0.x及以上
    • Vaadin 23+ 推荐使用Tomcat 10.x(Tomcat 10基于Jakarta EE,Vaadin 23+才提供对应支持;若用Tomcat 9,需选择Vaadin 22及以下版本)
  4. 检查war包完整性
    解压war包,确认WEB-INF/lib下包含所有Vaadin相关依赖,WEB-INF/classes下存在项目编译后的class文件。如果构建过程中依赖下载不完全,会直接导致部署失败。

  5. 配置上下文路径
    如果war包名称与期望的访问路径不符,可在Tomcat的conf/server.xml的<Host>标签内添加配置:

    <Context path="/icsprojects-version-1.0" docBase="icsprojects-version-1.0" reloadable="true"/>
    

    或在conf/Catalina/localhost目录下创建icsprojects-version-1.0.xml文件,内容同上。

  6. ngrok访问路径验证
    确保ngrok转发的是Tomcat的服务端口(默认8080),访问时需使用ngrok提供的完整域名加上应用上下文路径(比如https://xxx.ngrok.io/icsprojects-version-1.0/),不要直接访问根路径。

内容的提问来源于stack exchange,提问作者BaigHack3rss

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 19:01:21