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

Spring 项目 基于 Tomcat容器进行部署

文章目录

    • 一、前置知识
    • 二、项目部署
      • 1. 将写好的 Spring 项目先打包成 war 包
      • 2. 查看项目工件(Artifact)是否存在
      • 3. 配置 Tomcat
        • 3.1 添加一个本地 Tomcat 容器
        • 3.2 将项目部署到 Tomcat
      • 4. 运行项目

尽管市场上许多新项目都已经转向 Spring Boot,但对于一些老旧的 Spring 项目,尤其是维护期较长、涉及多个业务的系统,依然需要开发者掌握如何将这些项目正确地部署到 Tomcat 容器中。因此,撰写这篇文章的目的就是为了帮助开发者和运维人员能够在面对老的 Spring 项目时,快速而准确地完成部署任务。

一、前置知识

在传统的 Java Web 项目中,静态资源(如 HTML/CSS/JS/图片等)通常存放在项目的 webapp 目录下。Tomcat 作为常用的 Servlet 容器,会将 webapp 目录作为默认的 Web 应用根目录,并会直接暴露其中的静态文件。

  • 默认行为
    如果在 webapp 目录中存放了资源(例如 webapp/images/logo.png),则可以通过以下 URL 直接访问:

    http://localhost:8080/images/logo.png
    

二、项目部署

1. 将写好的 Spring 项目先打包成 war 包

首先,使用 IDE 或者命令行工具将 Spring 项目打包为 WAR 文件。这个过程将创建一个包含所有 Web 应用内容(包括静态资源、配置文件等)的归档包。

image-20250109100040542

打包完成后,请确认目标路径中确实产生了 .war 文件。

提示:如果使用 Maven,需要在 pom.xml 中将 <packaging>jar</packaging> 改为 <packaging>war</packaging>

2. 查看项目工件(Artifact)是否存在

在某些 IDE(例如 IntelliJ IDEA)中,项目打包后的产物(.war.jar)会被称为 Artifact。因此,在部署到 Tomcat 前,需要先检查该 Artifact 是否已经正常生成。

image-20250109100300580

如果工件(Artifact)不存在,需要手动创建。常见步骤:

  1. 打开 IntelliJ IDEA 的 Project StructureArtifacts
  2. 点击左上角的 “+” 号,选择 “Web Application: Archive (或 exploded)”。
  3. 将你项目的 webapp 目录或输出配置到对应的 Artifact 中。

下面是一个在 IntelliJ IDEA 中创建 webapp 对应源模块作为工件的操作演示:

recording

小提示:创建好以后,名称可以改成与你想要的 Context Path 相匹配的名称,这样前端或其他调用者就可以使用对应路径访问。

3. 配置 Tomcat

当 Artifact 准备完毕后,就可以将此 Artifact 部署到 Tomcat 容器中进行运行或调试。

3.1 添加一个本地 Tomcat 容器

在 IntelliJ IDEA 中,打开 RunEdit Configurations → 点击 “+” 号,选择 Tomcat ServerLocal

image-20250109101333089

在弹出的配置窗口中:

image-20250109101429013

  • 指定 Tomcat 安装目录
    你需要事先下载并解压 Tomcat(可从 Tomcat 官网 获取),然后将解压路径填入 Tomcat Home
  • 选择合适的 JDK
    Tomcat 9 及以上版本通常兼容 JDK 8 或 11,具体根据你项目中使用的 Java 版本来决定。
3.2 将项目部署到 Tomcat

在配置好的 Tomcat Server 设置中,切换到 “Deployment” 选项卡:

image-20250109101832158

点击 “+” → Artifact,选择你在步骤 2 中创建或已有的 .war 文件(或 exploded 形式):

recording

  • Context Path
    在弹出的对话框里,你可以手动设置访问路径,例如 /myapp/demo
    若设置为 /,则相当于部署到根路径,下次访问就不需要带上项目名。

注意:如果你改变了 Artifact 的名称,最终在 Tomcat 中也可以将 Context Path 手动设置为你想要的值。这两者相辅相成,但在实际生产环境中,需要根据前端或接口约定来决定合适的 Context Path。

配置完成后,你可以在 “Deployment” 页面上看到该 Artifact 已经被添加到 Tomcat。

访问的 URL 地址示例
如果 Tomcat 默认端口为 8080,并且 Context Path 设置为 /intelligenceCommand,那么访问路径往往形如:

http://localhost:8080/intelligenceCommand/

image-20250109103942160

4. 运行项目

最后,点击 IntelliJ IDEA 上方的绿色运行按钮(或 Debug 按钮),启动本地 Tomcat。若控制台没有报错,说明部署成功,项目就能通过浏览器访问。

image-20250109102848965

  • 控制台输出:

    如果看到如下信息,表示服务器已正常启动:

    image-20250109104621817

  • 访问测试
    在浏览器中输入 http://localhost:8080/myapp(若 Context Path 是 myapp),就能看到你的应用首页或者相关接口数据,说明部署成功。

常见问题

  1. 端口占用问题:如果 8080 端口被占用,你需要在 Tomcat 中修改端口或者关闭占用 8080 的应用。
  2. 资源无法访问 404:检查静态资源是否正确放在 webapp 目录下,并且确认在 .war 包中已经包含这些文件。
http://www.lryc.cn/news/518645.html

相关文章:

  • “负载均衡”出站的功能、原理与场景案例
  • 02-51单片机数码管与矩阵键盘
  • 不同方式获取音频时长 - python 实现
  • 【python A* pygame 格式化 自定义起点、终点、障碍】
  • 12_Redis发布订阅
  • 归并排序:数据排序的高效之道
  • 【redis初阶】浅谈分布式系统
  • CatLog的使用
  • 头歌python实验:网络安全应用实践-恶意流量检测
  • 大模型WebUI:Gradio全解11——Chatbots:融合大模型的多模态聊天机器人(2)
  • 如何用 Python 实现简单的 AI 模型?
  • 单片机-直流电机实验
  • python【数据结构】
  • 详解Sonar与Jenkins 的集成使用!
  • 《笔记》青蛙跳台阶——斐波那契数列
  • SpringBoot3动态切换数据源
  • OSPF - 特殊区域
  • Linux 系统下磁盘相关指令:df、du、fdisk、lsblk
  • 基于单片机的肺功能MVV简单测算
  • 如何用Python编程实现自动整理XML发票文件
  • 腾讯云AI代码助手编程挑战赛-百事一点通
  • Spring学习笔记1
  • LeetCode 2185. Counting Words With a Given Prefix
  • 图漾相机基础操作
  • 前端开发中页面优化的方法
  • Qt QDockWidget详解以及例程
  • 机器学习之贝叶斯分类器和混淆矩阵可视化
  • 关于大数据的基础知识(一)——定义特征结构要素
  • 2025 GitCode 开发者冬日嘉年华:AI 与开源的深度交融之旅
  • 【MyBatis-Plus 进阶功能】开发中常用场景剖析