IntelliJ IDEA 运行 Tomcat 报错:Please, configure Web Facet first!

IntelliJ IDEA 运行 Tomcat 报错:Please, configure Web Facet first!

适用:IntelliJ IDEA Ultimate
关键点:Web Facet + Artifact(war exploded)+ Tomcat Deployment
本文同时覆盖两种项目结构:
1)普通 Web 目录结构(例如项目里有 web/WEB-INF)
2)Maven 标准结构(src/main/webapp)

0. 你遇到的现象是什么?

当你在 IDEA 里运行 Tomcat(或尝试打开浏览器访问)时,弹出提示:

Browser Error
Please, configure Web Facet first!

这句话的真实含义是:IDEA 还没把你的模块识别为 Web 模块,因此无法正确识别 Web 根目录、WEB-INF、web.xml,也就没法生成部署结构并交给 Tomcat 跑起来。


1. 为什么会出现这个错?

常见原因主要有三类:

  1. 模块没有 Web FacetIDEA 不知道你的 Module 是“Web 应用”,自然也不知道 Web 根目录在哪里。
  2. 没有生成 Artifact(war / war exploded)Tomcat 运行配置的 Deployment 需要“部署产物”,否则 Tomcat 不知道部署什么。
  3. Web 根目录未配置(Web Resource Directory)比如你的静态资源、JSP、WEB-INF 并不在默认路径,需要手动告诉 IDEA。

2. 解决方案(通用步骤,按截图一步一步来)

步骤 1:打开 Project Structure

菜单栏:File → Project Structure…

(macOS 常用快捷键:⌘ ;,Windows/Linux:Ctrl + Alt + Shift + S)


步骤 2:添加 Web Facet

左侧选择 Facets → 点击左上角 “+” → 选择 Web

这一步等于告诉 IDEA:

“这个 Module 是 Web 应用,需要 Web 根目录、WEB-INF、web.xml 等配置。”

步骤 3:选择要添加 Web Facet 的模块

弹出 Choose Module 后,选择你真正要部署到 Tomcat 的模块(例如 Test)→ 点击 OK

多模块项目尤其要注意:
别选错模块,否则 Artifact 会建在错误模块上,部署时会一直 404 或找不到资源。

步骤 4:配置 Web 根目录(Web Resource Directory)与 web.xml

进入 Web Facet 配置页后,核心配置是:

4.1 Web Resource Directories(Web 根目录)

把你的 Web 根目录加入(例如 …/Test/web 或 src/main/webapp)

右侧 Relative path 一般保持 /(部署根路径)。

4.2 Deployment Descriptors(可选)

如果你使用 web.xml,确认路径是 WEB-INF/web.xml 对应的真实位置。


步骤 5:创建 Artifact(推荐 war exploded)

左侧切换到 Artifacts → 点击左上角 “+” → 选择:

Web Application: Exploded → From Modules…

为什么推荐 Exploded

  • 开发阶段更友好(目录形式)
  • 修改 JSP / 静态资源更方便验证
  • 部署调试体验更好

步骤 6:选择模块生成 war exploded

Select Modules 窗口中选择模块(如 Test)→ 点击 OK

IDEA 会生成一个类似:Test:war exploded


步骤 7:Apply/OK 保存配置

确认:

  • Type 是 Web Application: Exploded
  • Output Layout 里有 Web facet resources

最后点击:Apply → OK


3. 最后一步:把 Artifact 部署到 Tomcat

很多人做到上面不报错了,但 Tomcat 还是跑不起来,原因是:没部署 Artifact

操作如下:

  1. Run → Edit Configurations… 打开你的 Tomcat(Local)配置
  2. 切到 Deployment 页签
  3. 点击 +
  4. 选择 xxx:war exploded
  5. 设置 Application context(常用两种)
    • /:根路径(http://localhost:8080/)
    • /test:子路径(http://localhost:8080/test)
  6. Run 启动 Tomcat

4. 针对普通 Web 目录版Maven 标准版这两种项目结构的“具体落地配置”

版本 A:普通 Web 目录结构

目录示例

Test/ ├─ src/(可有可无) ├─ web/ │ ├─ index.jsp │ └─ WEB-INF/ │ ├─ web.xml(可选) │ └─ lib/(可选) └─ ...

Web Facet 该怎么配?

Web Facet 页面:

  • Web Resource Directory:选择 …/Test/web
  • Relative path:/

如果有 web.xml:

  • Deployment Descriptor:…/Test/web/WEB-INF/web.xml

Artifact 建议

  • 选择:Web Application: Exploded
  • From Modules… 选择你的模块(Test)

Tomcat Deployment

  • 部署 Test:war exploded
  • context 建议 /test 或 /(看你访问习惯)

版本 B:Maven 标准 Web 项目(src/main/webapp)

Maven 标准目录结构

your-app/ ├─ src/ │ ├─ main/ │ │ ├─ java/ (Servlet/Controller 等) │ │ ├─ resources/ (配置文件) │ │ └─ webapp/ (Web 根目录) │ │ ├─ index.jsp │ │ └─ WEB-INF/ │ │ ├─ web.xml(可选) │ │ └─ views/... │ └─ test/... ├─ pom.xml └─ ...

Maven 项目为什么也会遇到这个错?

有些情况下:

  • 项目导入不完整
  • IDEA 没自动识别成 Web(尤其是你把它当普通 Java 工程导入时)
  • module 没带 Web Facet

Web Facet 该怎么配?

Web Facet 页面:

  • Web Resource Directory:选择 src/main/webapp
  • Relative path:/

如果使用 web.xml:

  • src/main/webapp/WEB-INF/web.xml

Artifact 建议

仍然是:

  • Web Application: Exploded → From Modules…

Tomcat Deployment

部署 xxx:war exploded,访问:

  • http://localhost:8080/你的context/
如果你用的是 Servlet 3.0+(全注解),没有 web.xml 也没关系,但 Web Root 必须正确是 src/main/webapp。

5. 常见问题排查

1)Facets 里没有 Web 选项?

  • 你可能用的是 IDEA Community(社区版不带完整 JavaEE/Tomcat 集成)

2)部署后访问 404?

  • 检查 Tomcat → Deployment 是否添加了 war exploded
  • 检查 Application context 是否正确(是不是 /test 但你访问了 /)

3)静态资源 / JSP 访问不到?

  • Web Resource Directory 配错了:普通项目应该是 web/,Maven 应该是 src/main/webapp

4)还是弹“configure Web Facet”?

  • Web Facet 没加在正确模块上(多模块选错)
  • 配完没点 Apply/OK 保存

5)web.xml 找不到 / 报 descriptor 错误?

  • 真实路径不是 WEB-INF/web.xml
  • 或你项目根本没用 web.xml(注解方式),可不配 descriptor

结尾

        配置 Web Facet 的本质是“让 IDEA 认识你的模块是 Web 应用”,创建 Artifact 的本质是“生成 Tomcat 可部署的产物”。只要把 Web 根目录war exploded 两件事配对,Please, configure Web Facet first! 基本就不会再出现。

Read more

DeepSeek-R1+Stable Diffusion:云端双模型,创意加倍

DeepSeek-R1+Stable Diffusion:云端双模型,创意加倍 你是不是也遇到过这样的情况:写文案时灵感来了,想立刻生成一张配图,结果本地电脑跑不动 Stable Diffusion;或者刚部署好 DeepSeek 做文本创作,再想加个图像生成,显卡直接“罢工”?别急,这并不是你的设备不行,而是大模型对硬件的要求确实不低。 尤其是像 DeepSeek-R1 这样的大语言模型,加上 Stable Diffusion 这类图像生成模型,两者同时运行,对显存和算力的需求是叠加的。根据公开信息,仅 DeepSeek-R1 的满血版(671B 参数)就需要高达 1300GB 显存才能运行,即便是量化后的 7B 版本,也需要至少 8GB 显存起步。而 Stable Diffusion 虽然相对轻量,但高质量出图建议使用 12GB

具身神经-机器人运控通讯架构与实现系列

具身智能热潮之下,大量企业投身具身行业。在机器人本体控制方案上各家争鸣,但是试错路径太长,不少团队会在底层控制方案上走大量的弯路,导致资源浪费、项目延期甚至破产。 以第一性原则,探索当前具身机器人通讯架构实现最优解,加速具身机器人行业底层控制(通讯)系统技术方向收敛。尽可能帮助机器人本体系统工程师减少试错。 本系列仅针对机器人本体控制系统底层通讯部分:小脑<--->执行器/传感器之间的架构和具体实现。 gitee链接:https://gitee.com/Lenz_s_law/embodied-nerve 博文汇总 欢迎投稿 通讯架构分析篇 * MIT开源四足机器狗通讯架构分析 * 智元灵犀X1通讯分析1-整机通讯架构 * 智元灵犀X1通讯分析2-CANFD性能优化 * 宇树G1主控拆解分析 * RS485、CAN/FD、EtherCAT三种主流机器人总线方案分析 CAN/FD技术篇 * CAN/FD总线性能分析-机器人应用 * 机器人CAN/FD总线通讯架构设计 * 机器人CAN/FD接口关键性能指标 * 机器人CAN/FD接口扩展/实现方案

春晚顶流宇树机器人深度拆解:从武术表演到千亿产业落地

春晚顶流宇树机器人深度拆解:从武术表演到千亿产业落地

一、春晚名场面:国产机器人的“功夫秀”封神时刻 2026马年春晚,《武BOT》节目凭16台宇树G1/H2机器人的硬核表演刷屏全网——1.8米高的H2身着红袍舞剑,3米腾空后空翻落地稳如磐石,剑招精准度达±10mm,完美复刻“苏秦背剑”“白鹤亮翅”等经典招式;G1机器人耍双节棍时转速达2.3圈/秒,打醉拳时躯干摆动幅度±30°,与86名塔沟武校少年实现“人机拳拳相击”的零碰撞协同,动作同步误差低于0.1秒。更令人惊叹的是义乌分会场的创意呈现:H2机器人吊威亚登场化身齐天大圣,手持金箍棒完成360°旋转劈杀,四足机器人B2-W组成动态祥云矩阵,通过队形变换拼出“龙年大吉”字样,传统IP与科技感的融合引发全网热议。 这场表演创下三项世界纪录:全球首次全自主集群武术表演、人形机器人连续空翻最多(单脚3次)、人机协同复杂度最高(16台机器人+86人同步动作),#机器人全面入侵春晚# 话题阅读量破亿,央视评论称其“标志着中国具身智能进入实用化阶段”。而鲜为人知的是,这群“

FPGA 面试题目汇总含解析,FPGAer 上岸必备!

FPGA 面试题目汇总含解析,FPGAer 上岸必备!

每到招聘季,很多做 FPGA 的同学都会有同一个感受: 项目能做,代码能写,一到面试却被问得很散、很细、很杂。 本质原因只有一个: FPGA 面试问的不是“你会不会写代码”,而是“你是否真的理解硬件行为”。 这篇文章整理了一批 FPGA 面试中高频出现的经典问题,覆盖 基础语法、时序设计、接口、调试、工程经验 等方向,每道题都配有工程视角的解析,适合: * 校招 / 社招 FPGA 面试前系统复习 * 查漏补缺,验证自己“到底懂没懂” * 面试前快速过一遍,避免低级失分 一、Verilog / HDL 基础高频题 1. 阻塞赋值(=)和非阻塞赋值(<=)的区别? 参考答案: * 阻塞赋值(=) * 按顺序执行 * 常用于组合逻辑 * 非阻塞赋值(