当前位置: 首页 > article >正文

实战分享怎样实现IntelliJ IDEA 打包 Web 项目 WAR 包(含 Tomcat 部署 + 常见问题解决)

在 Java Web 开发中“本地能跑”只是第一步真正让很多人头疼的是后续这条链路项目打包 → 生成 WAR → 部署 Tomcat → 启动验证 → 排查报错。尤其是刚从 Spring Boot 内嵌容器模式转向传统 WAR 部署、或者接手老项目时常常会遇到明明 Maven 构建成功但 Tomcat 启动 404WAR 包里缺少依赖运行时报 ClassNotFoundExceptionIDEA 能运行独立 Tomcat 却报编码、路径、JDK 版本问题发布后静态资源丢失、上下文路径错误、JSP 无法访问。这篇文章就按“可落地实战”的方式带你完整走一遍IDEA 中正确配置并打包 WAR在 Tomcat 中标准部署与验证高频问题逐类定位与解决。你可以把它当作一份“从开发机到可部署产物”的操作手册。一、先理解 WAR 是什么为什么还需要它WARWeb Application Archive本质是 Java Web 应用的标准发布格式。它通常包含WEB-INF/classes编译后的 class 文件WEB-INF/lib运行依赖 jarWEB-INF/web.xml可选取决于项目页面资源JSP/HTML静态资源css/js/images在现代 Spring Boot 项目里很多场景直接打可执行 JAR 就够了但在这些情况下WAR 仍很常见公司统一使用外置 Tomcat/JBoss/WebLogic老系统是 Servlet/JSP 架构多应用共享容器运维体系交付规范要求 WAR二、准备工作版本与环境对齐正式打包前先做四项检查能避免 80% 的坑。1JDK 版本一致IDEA Project SDKMaven/Gradle 使用的 JDKTomcat 运行 JDK三者尽量一致。例如都用 JDK 8 或都用 JDK 17。不一致常导致类版本错误UnsupportedClassVersionError。2Tomcat 版本匹配Servlet 3.x/4.x/5.x 与 Tomcat 版本要对应Jakarta 命名空间jakarta.*与旧 javax.* 不可混用3构建工具配置正确确认 pom.xml 或 build.gradle 的 packaging 为 war。Maven 示例核心xmlpackagingwar/packaging4项目目录规范标准 Maven Web 项目通常是src/main/javasrc/main/resourcessrc/main/webapp如果你是非标准目录需在构建配置里显式声明资源路径。三、使用 Maven 在 IDEA 中打 WAR推荐虽然 IDEA 也能用 Artifact 打包但生产环境更建议以 Maven/Gradle 为准可复现、可 CI。步骤1配置 pom.xml一个典型 Maven Web 项目核心配置如下示意xmlproject modelVersion4.0.0/modelVersion groupIdcom.example/groupId artifactIddemo-web/artifactId version1.0.0/version packagingwar/packaging dependencies!-- Servlet API 由容器提供 --dependency groupIdjavax.servlet/groupId artifactIdjavax.servlet-api/artifactId version4.0.1/version scopeprovided/scope /dependency /dependencies build finalNamedemo-web/finalName plugins plugin artifactIdmaven-war-plugin/artifactId version3.4.0/version /plugin /plugins /build /project关键点packaging 必须是 war容器已提供的 API 建议 provided避免冲突步骤2在 IDEA 执行打包方式 A右侧 Maven 面板执行 Lifecycle - package方式 B终端执行bashmvn clean package -DskipTests成功后在 target/ 下得到demo-web.war可部署或展开目录取决于配置四、使用 IDEA Artifact 打 WAR可选如果你需要快速本地验证也可以用 IDEA 自带打包File - Project Structure - Artifacts - Web Application: Archive - From modules...选择模块与输出目录Build - Build Artifacts - Build注意Artifact 方式依赖 IDE 配置团队一致性不如 Maven。建议作为补充不作为唯一交付方式。五、Tomcat 部署 WAR 的三种方式方式1直接拷贝到 webapps/把 demo-web.war 复制到 Tomcat 的 webapps/ 目录启动 Tomcat 自动解压部署。访问路径通常是texthttp://localhost:8080/demo-web/方式2Tomcat Manager 部署启用 Manager 后通过网页上传 WAR 部署适合远程环境和运维协作。方式3IDEA 配置本地 Tomcat Run/DebugRun - Edit Configurations添加 Tomcat Server - Local配置 Tomcat Home、JRE在 Deployment 里添加 Artifact: demo-web:war启动后可直接调试断点六、上下文路径Context Path一定要搞清楚很多 404 都是路径问题。常见规则WAR 名称是 demo-web.war默认 context path 是 /demo-web如果你想根路径访问可命名为 ROOT.war也可以在 Tomcat conf/Catalina/localhost/*.xml 单独配置 context示例ROOT.war 部署后访问texthttp://localhost:8080/七、Spring Boot 项目打 WAR 的额外配置如果是 Spring Boot 改 WAR需要额外处理packaging 改为 war内嵌 Tomcat 依赖改 provided启动类继承 SpringBootServletInitializer示例核心javaSpringBootApplication public class App extends SpringBootServletInitializer { Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(App.class); } }否则常见现象是JAR 模式能跑WAR 部署外置 Tomcat 启动失败。八、常见问题与解决方案高频故障清单问题1部署后 404排查访问 URL 是否带正确 context pathwebapps 是否已解压出同名目录日志是否显示应用启动成功Controller 路径或 servlet mapping 是否正确问题2ClassNotFoundException原因依赖未打进 WEB-INF/lib 或 scope 配错。解决检查依赖 scope非容器提供依赖不要写 provided查看 WAR 内容是否包含缺失 jar问题3UnsupportedClassVersionError原因编译 JDK 高于运行 JDK。解决统一 IDEA/Maven/Tomcat JDK 版本配置 maven-compiler-plugin 指定 source/target问题4端口冲突Tomcat 启动失败现象Address already in use解决修改 conf/server.xml 的 Connector port或结束占用 8080 的进程问题5中文乱码请求或页面解决组合Tomcat server.xml 设置 URIEncoding过滤器统一 UTF-8JSP 页面声明 UTF-8数据库连接串加编码参数问题6静态资源 404排查资源是否打入 WARSpring MVC 资源映射是否正确前端构建产物目录是否复制到 webapp 或 static问题7JSP 无法编译或访问排查是否引入 JSTL、JSP 相关依赖Tomcat 版本与 JSP/Servlet 规范匹配视图解析器配置是否正确问题8启动很慢或卡死排查是否扫描了过多无关包数据源连接超时第三方服务初始化阻塞打开 JVM 启动参数与 GC 日志分析九、日志排查建议先看哪里出现部署问题时优先看三类日志catalina.outLinux或控制台输出应用日志logback/log4jIDEA Run 窗口启动日志重点关键词SEVEREExceptionCaused by经验法则先找第一个根因异常不要被后续连锁报错干扰。十、生产部署建议避免“本地好好的”用 Maven/Gradle 标准化打包不依赖个人 IDE Artifact固化 JDK 与 Tomcat 版本写进部署文档配置分环境参数dev/test/prod健康检查接口与启动探针要有发布前做一次“干净环境”部署验证保留回滚包与版本号不覆盖式发布监控 JVM、线程池、连接池、错误率IntelliJ IDEA 打包 WAR 并部署 Tomcat本质上不是一个“点按钮”动作而是一条完整工程链路。当你把以下四件事做好成功率会大幅提升构建标准化Maven/Gradle环境一致性JDK/Tomcat/依赖路径与资源清晰context、静态文件、web.xml/注解日志驱动排错先根因、后现象如果你是个人开发者这套流程能让你少走很多弯路如果你是团队负责人这套规范能显著降低“部署靠玄学”的风险。一句话总结WAR 部署并不难难的是细节不统一。把细节标准化Tomcat 部署就会变成稳定、可复制的日常操作。

相关文章:

实战分享怎样实现IntelliJ IDEA 打包 Web 项目 WAR 包(含 Tomcat 部署 + 常见问题解决)

在 Java Web 开发中,“本地能跑”只是第一步,真正让很多人头疼的是后续这条链路: 项目打包 → 生成 WAR → 部署 Tomcat → 启动验证 → 排查报错。尤其是刚从 Spring Boot 内嵌容器模式转向传统 WAR 部署、或者接手老项目时,常常…...

DeepBlueCLI高级配置:自定义正则表达式与安全名单优化

DeepBlueCLI高级配置:自定义正则表达式与安全名单优化 【免费下载链接】DeepBlueCLI 项目地址: https://gitcode.com/gh_mirrors/de/DeepBlueCLI DeepBlueCLI是一款功能强大的事件日志分析工具,能够帮助安全分析师快速识别系统中的可疑活动。通过…...

设计直播主播流水记账监控简易仿真程序,自动分类带货收支数据,识别异常隐匿收入账目标,记疑似偷漏税数据项。

一、实际应用场景描述场景设定:你是某 MCN 机构的财务或风控人员,负责监控旗下直播主播的带货流水。典型流程:1. 直播带货- 主播 A 在某平台直播- 观众下单 → 平台结算 → 主播/机构分账2. 资金流向- 平台结算款(含佣金、坑位费、…...

AirPodsDesktop:解锁Windows电脑上AirPods隐藏功能的神奇工具

AirPodsDesktop:解锁Windows电脑上AirPods隐藏功能的神奇工具 【免费下载链接】AirPodsDesktop ☄️ AirPods desktop user experience enhancement program, for Windows and Linux (WIP) 项目地址: https://gitcode.com/gh_mirrors/ai/AirPodsDesktop 还在…...

TinyEditor代码深度解析:揭秘超小型编辑器的实现魔法

TinyEditor代码深度解析:揭秘超小型编辑器的实现魔法 【免费下载链接】TinyEditor A functional HTML/CSS/JS editor in less than 400 bytes 项目地址: https://gitcode.com/gh_mirrors/ti/TinyEditor TinyEditor是一款令人惊叹的超小型HTML/CSS/JS编辑器&a…...

Windows Cleaner:系统优化工具的技术哲学与实践

Windows Cleaner:系统优化工具的技术哲学与实践 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 当C盘空间告急的红色警告成为数字生活的日常&#xff…...

如何构建安全可靠的 myDrive 用户认证系统:JWT访问令牌与刷新令牌完整指南

如何构建安全可靠的 myDrive 用户认证系统:JWT访问令牌与刷新令牌完整指南 【免费下载链接】myDrive Node.js and mongoDB Google Drive Clone 项目地址: https://gitcode.com/gh_mirrors/my/myDrive 在当今数字化时代,用户认证是任何Web应用程序…...

如何解锁NVIDIA显卡隐藏性能:NVIDIA Profile Inspector终极配置指南

如何解锁NVIDIA显卡隐藏性能:NVIDIA Profile Inspector终极配置指南 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector NVIDIA Profile Inspector是一款能够深入调整NVIDIA显卡参数的专业工具&…...

如何高效实现OpenVAS Scanner扫描插件结果数据备份与恢复:完整测试指南

如何高效实现OpenVAS Scanner扫描插件结果数据备份与恢复:完整测试指南 【免费下载链接】openvas-scanner This repository contains the scanner component for Greenbone Community Edition. 项目地址: https://gitcode.com/GitHub_Trending/op/openvas-scanner…...

glogg实战指南:跨平台高效日志分析解决方案深度解析

glogg实战指南:跨平台高效日志分析解决方案深度解析 【免费下载链接】glogg A fast, advanced log explorer. 项目地址: https://gitcode.com/gh_mirrors/gl/glogg 面对海量日志文件时,传统文本编辑器和命令行工具的局限性日益凸显:内…...

5分钟掌握spacetime:轻量级JavaScript时区库的终极入门指南

5分钟掌握spacetime:轻量级JavaScript时区库的终极入门指南 【免费下载链接】spacetime A lightweight javascript timezone library 项目地址: https://gitcode.com/gh_mirrors/sp/spacetime spacetime是一款轻量级JavaScript时区处理库,专为简化…...

Compojure测试驱动开发:如何为路由编写单元测试的终极指南

Compojure测试驱动开发:如何为路由编写单元测试的终极指南 【免费下载链接】compojure A concise routing library for Ring/Clojure 项目地址: https://gitcode.com/gh_mirrors/co/compojure Compojure作为Clojure生态中简洁高效的路由库,其测试…...

终极bufferline.nvim开发者指南:扩展与贡献代码的完整教程

终极bufferline.nvim开发者指南:扩展与贡献代码的完整教程 【免费下载链接】bufferline.nvim A snazzy bufferline for Neovim 项目地址: https://gitcode.com/gh_mirrors/bu/bufferline.nvim bufferline.nvim是一款为Neovim打造的时尚缓冲区管理插件&#x…...

MySQLd Exporter社区贡献指南:从用户到开发者的转变

MySQLd Exporter社区贡献指南:从用户到开发者的转变 【免费下载链接】mysqld_exporter Exporter for MySQL server metrics 项目地址: https://gitcode.com/gh_mirrors/my/mysqld_exporter MySQLd Exporter作为Prometheus生态中重要的MySQL性能指标采集工具&…...

一键部署LongCat-Image-Edit:开箱即用的文本驱动图像编辑模型

一键部署LongCat-Image-Edit:开箱即用的文本驱动图像编辑模型 1. 模型核心能力与技术特点 LongCat-Image-Edit是美团LongCat团队推出的轻量级图像编辑模型,专注于通过自然语言指令实现精准的图像修改。这个6B参数的模型在多项基准测试中达到了开源模型…...

golang如何使用Wails开发桌面应用_golang Wails桌面应用开发步骤

Wails init失败需先检查Node.js和npm版本,换淘宝镜像;Go方法需结构体绑定//wails:export注释,参数返回值受限;前端须在wails.ready()后调用;构建时注意cgo依赖与系统环境。Wails init 项目失败:npm install…...

Chipmunk2D跨平台部署指南:从桌面到移动端的完整解决方案

Chipmunk2D跨平台部署指南:从桌面到移动端的完整解决方案 【免费下载链接】Chipmunk2D A fast and lightweight 2D game physics library. 项目地址: https://gitcode.com/gh_mirrors/ch/Chipmunk2D Chipmunk2D是一款轻量级的2D物理引擎库,它以高…...

DCT-Net多风格人像卡通化:一站式解决方案

DCT-Net多风格人像卡通化:一站式解决方案 一张普通照片,瞬间变成多种风格的卡通形象,这不是魔法,而是AI的力量 你有没有想过,自己的照片能变成各种风格的卡通形象?比如精致的3D动画角色、清新的手绘插画&am…...

5分钟掌握B站视频转文字:免费开源工具bili2text终极指南

5分钟掌握B站视频转文字:免费开源工具bili2text终极指南 【免费下载链接】bili2text Bilibili视频转文字,一步到位,输入链接即可使用 项目地址: https://gitcode.com/gh_mirrors/bi/bili2text 还在为手动整理B站视频内容而烦恼吗&…...

用超运算统一些常见的运算

Hn(a,b)H_n(a,b)Hn​(a,b) 递归定义如下: Hn(a,b){b1n0,an1,  b0,1n≥2,  b0,Hn−1(a,  Hn(a,b−1))n≥1,  b≥1. H_n(a, b) \begin{cases} b 1 & n 0, \\ a & n 1,\; b 0, \\ 1 & n \ge 2,\; b 0, \\ H_{n-1}\big(a,\;H_n(a, b-1)\big) …...

从Java转行大模型应用,大模型量化实现,AWQ 与 GPTQ 算法

一、算法总览1. AWQ(Activation-aware Weight Quantization,激活感知权重量化)定位:仅权重量化(Weight-only) 的后训练量化(PTQ)算法,专为大语言模型(LLM&…...

C++20中views的学习和使用

如你所知,C标准库从C98发布以来在机制层面一直没有较大变动。直到C20中range的引入,再次使得沉寂许久的C标准库再次焕发了生机。range 库主要作用于对具有范围的数据处理。对于确定范围的数据,在传统标准库中也有对应的处理方案。但 range 对…...

从Java转行大模型应用,Transformers 原生支持的大模型量化算法PTQ、QAT

一、量化基础概念1. 什么是模型量化将模型的高精度参数(FP32/FP16/BF16) 转换为低精度参数(INT8/INT4) 的技术,核心目标:减少模型显存占用(INT4 比 FP16 小 75%)提升推理速度、降低算…...

ThetaGang高级功能揭秘:VIX对冲与现金管理策略

ThetaGang高级功能揭秘:VIX对冲与现金管理策略 【免费下载链接】thetagang ThetaGang is an IBKR bot for collecting money 项目地址: https://gitcode.com/gh_mirrors/th/thetagang ThetaGang是一款功能强大的IBKR交易机器人,最初作为"The…...

SillyTavern终极指南:从零开始打造你的AI对话前端

SillyTavern终极指南:从零开始打造你的AI对话前端 【免费下载链接】SillyTavern LLM Frontend for Power Users. 项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern SillyTavern是一款专为高级用户设计的LLM前端界面,提供强大的AI对…...

gh_mirrors/ad/advice项目社区支持体系:如何获得申请过程中的帮助与指导

gh_mirrors/ad/advice项目社区支持体系:如何获得申请过程中的帮助与指导 【免费下载链接】advice A repository of links with advice related to grad school applications, research, phd etc 项目地址: https://gitcode.com/gh_mirrors/ad/advice gh_mirr…...

ELECTRA未来发展方向:从语言模型到多模态应用的演进

ELECTRA未来发展方向:从语言模型到多模态应用的演进 【免费下载链接】electra ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators 项目地址: https://gitcode.com/gh_mirrors/el/electra ELECTRA作为一种创新的自监督语言表示学…...

RL4LMs KL控制器原理:如何保持语言模型与原始模型的语义一致性

RL4LMs KL控制器原理:如何保持语言模型与原始模型的语义一致性 【免费下载链接】RL4LMs A modular RL library to fine-tune language models to human preferences 项目地址: https://gitcode.com/gh_mirrors/rl/RL4LMs 在强化学习(RL&#xff0…...

Qwen3.5-9B-AWQ-4bit图文理解实战教程:保姆级部署与图片问答入门指南

Qwen3.5-9B-AWQ-4bit图文理解实战教程:保姆级部署与图片问答入门指南 1. 认识Qwen3.5-9B-AWQ-4bit视觉模型 Qwen3.5-9B-AWQ-4bit是一款强大的多模态AI模型,它能够像人类一样"看懂"图片并回答相关问题。想象一下,你给朋友看一张照…...

WebPlotDigitizer终极指南:5分钟从图表图像提取精准数据

WebPlotDigitizer终极指南:5分钟从图表图像提取精准数据 【免费下载链接】WebPlotDigitizer Computer vision assisted tool to extract numerical data from plot images. 项目地址: https://gitcode.com/gh_mirrors/we/WebPlotDigitizer 你是否曾面对论文中…...