JSP 项目迁移到 Ubuntu:从环境准备到部署验证

南乔
南乔
发布时间:2026-08-22| 185人浏览过
原创

前言

把 JSP 项目迁到 Ubuntu,真正麻烦的通常不是复制文件,而是版本、依赖和配置有没有完整对齐。下面这份整理按迁移顺序拆开:先核对源环境,再安装 JDK、Tomcat 和数据库,随后部署 WAR、调整连接配置并验证访问;照着做,你能更快判断问题究竟出在包内容、运行环境,还是 Tomcat 与数据库的联动配置。

把 JSP 项目从旧环境迁到 Ubuntu,看起来只是“换台机器”,实际最容易出问题的往往是版本差异、依赖缺失和配置路径不一致。本文按“迁移前核对、基础环境安装、项目部署、连接验证、上线优化”的顺序整理步骤,保留原文中的命令、版本和配置位置,方便你边做边核对,判断问题是出在环境、包内容,还是运行配置上。

迁移前先把环境信息摸清楚

正式动手前,先把原服务器上的运行条件记录完整,这一步能减少后面大量反复排查。

展示 JSP 项目迁移前需要核对的关键环境信息与目标服务器准备项的白底信息图
迁移前检查清单迁移前先把版本、依赖、目录结构和服务器权限核对清楚,能减少后续大量排错时间。

源环境需要确认哪些信息

  • JDK 版本,例如 OpenJDK 8 或 11。
  • Tomcat 版本,例如 9.x。
  • 项目依赖的数据库类型,以及第三方库依赖。
  • 项目目录结构,尤其是 WEB-INF/lib 下的 JAR 包、web.xml 配置内容。
  • 端口设置,例如 Tomcat 默认的 8080 端口。

这些信息建议在迁移前单独列一份清单,后面安装和验证时逐项对照。

目标 Ubuntu 服务器要先准备什么

目标服务器至少要满足两个前提:系统已更新、当前账号具备 root 或 sudo 权限。

sudo apt update && sudo apt upgrade

如果这一步没有先处理好,后续安装 JDK、Tomcat 或数据库时,容易遇到软件包或权限问题。

先把 Ubuntu 运行环境搭起来

JSP 项目能否顺利启动,首先取决于 JDK、Tomcat 和数据库是否与原环境匹配。

安装 JDK

以 OpenJDK 11 为例,它通常能兼容大多数 JSP 项目。

sudo apt update
sudo apt install openjdk-11-jdk
java -version

如果 java -version 能正常输出版本信息,说明安装已经完成。

需要全局配置时,可以编辑 /etc/profile,加入环境变量:

JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
PATH=$JAVA_HOME/bin:$PATH

保存后执行:

source /etc/profile

安装 Tomcat

原文以 Tomcat 9.0.56 为例,安装方式如下:

wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.56/bin/apache-tomcat-9.0.56.tar.gz
sudo tar -zxvf apache-tomcat-9.0.56.tar.gz -C /usr/local/
sudo ln -s /usr/local/apache-tomcat-9.0.56 /usr/local/tomcat
cd /usr/local/tomcat/bin && ./startup.sh

启动后,访问 http://localhost:8080。如果能看到 Tomcat 欢迎页,说明容器本身运行正常。

如有需要,也可以在 /etc/profile 中加入:

CATALINA_HOME=/usr/local/tomcat
PATH=$CATALINA_HOME/bin:$PATH

然后执行:

source /etc/profile

项目依赖数据库时的安装方法

如果 JSP 项目依赖 MySQL,可以先完成数据库服务初始化:

sudo apt install mysql-server
sudo systemctl start mysql
sudo systemctl enable mysql
sudo mysql_secure_installation

mysql_secure_installation 这一步不要省,至少要完成 root 密码设置、匿名用户移除等基础安全配置。

JSP 项目怎么打包并部署到 Tomcat

环境搭好之后,就可以开始迁移应用本体。这里最关键的是 WAR 包内容必须完整。

展示 WAR 包上传、Tomcat 部署与数据库连接配置之间关系的白底流程信息图
WAR 部署与配置联动真正影响迁移成败的,不只是把 WAR 传上去,而是确保包内容、部署目录和数据库配置三者一致。

先确认 WAR 包是否打全

项目可以通过 IDE 导出,也可以直接使用命令打包:

jar -cvf project.war *

打包时要重点检查两类内容:

  • WEB-INF/lib 下的依赖 JAR 是否齐全。
  • web.xml 是否已经包含在 WAR 包内。

很多“部署成功但页面报错”的问题,本质上都出在 WAR 包缺依赖或缺配置文件。

把 WAR 上传到目标服务器

可以直接使用 scp 上传到服务器临时目录:

scp project.war user@ubuntu_ip:/tmp/

复制到 webapps 目录完成部署

上传后,把 WAR 文件放到 Tomcat 的 webapps 目录:

sudo cp /tmp/project.war /var/lib/tomcat9/webapps/

Tomcat 会自动解压并部署,一般会生成对应的 project 目录。

部署后重点检查数据库和访问配置

如果项目已经解压但仍然打不开,通常问题会集中在数据库连接、端口冲突或访问路径上。

数据库连接需要同步改哪些地方

先登录 MySQL:

sudo mysql -u root -p

然后创建数据库和账号:

CREATE DATABASE jsp_db;
CREATE USER 'jsp_user'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON jsp_db.* TO 'jsp_user'@'localhost';
FLUSH PRIVILEGES;

完成后,再修改项目中的数据库配置文件,例如:

WEB-INF/classes/jdbc.properties

把 URL、用户名和密码改成 Ubuntu 服务器上的实际值。

Tomcat 端口或虚拟主机怎么调整

如果默认端口被占用,可以修改 conf/server.xml 中的连接器配置:

<Connector port="8080">

例如改成 8081,避免端口冲突。

如果需要绑定域名或单独配置主机,也可以在 server.xml 的 <Engine> 标签内添加 <Host> 配置。

部署完成后如何验证是否正常

修改配置后,先重启 Tomcat:

sudo systemctl restart tomcat9

然后访问项目地址:

http://ubuntu_ip:8080/project_name

其中 project_name 通常就是 WAR 文件名,或者 webapps 下生成的目录名。验证时不要只看首页能否打开,还应顺手检查数据库读写、登录、表单提交等核心功能。

部署失败时先看日志

如果页面报错、启动异常或自动解压后应用不可用,优先查看 Tomcat 日志:

tail -f /usr/local/tomcat/logs/catalina.out

或者:

tail -f /var/log/tomcat9/catalina.out

日志通常能直接暴露缺包、类找不到、数据库连接失败或 XML 配置错误等问题。

上线后还可以补哪些优化

项目迁移成功后,如果还要对外提供稳定访问,可以继续补上反向代理和 HTTPS。

展示 Tomcat 验证、日志排错、Nginx 代理和 SSL 加固的白底信息图
验证与上线优化迁移完成后的验证与加固可以分成四块:访问检查、日志定位、反向代理和 HTTPS。

用 Nginx 做前端代理

可以编辑 Nginx 配置文件 /etc/nginx/sites-available/default,加入如下内容:

server {listen 80;server_name your_domain.com;location / {proxy_pass http://localhost:8080/project_name;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}}

配置完成后重启 Nginx:

sudo systemctl restart nginx

这样可以把外部请求转发给本机 Tomcat,同时更方便接入 HTTPS 和静态资源处理。

配置 SSL 证书

如果域名已经解析到服务器,可以直接通过 Certbot 申请免费证书:

sudo certbot --nginx -d your_domain.com

按提示完成配置后,站点就可以通过 HTTPS 提供访问。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。