向 tomcat 部署 java web 项目

tomcat / java / web

本文是远程调试 CentOS 系统自带的 tomcat 服务器的第二部分, 这篇文章中我们会部署一个 java web 到 tomcat 服务器

1 前言

很多人可能已经习惯了自己下载安装 tomcat,使用 tomcat 自带的 catalina 查看输出, 在本地调试 tomcat 服务器,但是如果你是在远程服务器上,使用 yum 自带的 tomcat, 这时需要如何调试呢,之前我们已经搭建好了一台 tomcat 服务器,现在让我们把我们的 java web 程序部署到服务器上

本文是远程调试 CentOS 系统自带的 tomcat 服务器的第二部分

  1. 安装和配置 tomcat 服务器
  2. 向 tomcat 部署 java web 项目
  3. 远程调试 tomcat 上的 java web 程序

2 使用到的软件

  • VirtualBox 6.0: 用来创建虚拟机
  • Terminal: 这里使用系统自带的 terminal, windows 用户可能需要 xshell, putty 之类的工具
  • IDEA: 用来编写 java web 项目,也可以使用其他 IDE 或编辑器

3 步骤

3.1 创建 Java web 项目 utils

这里只是简单记录要点内容,详细的步骤请搜索 java servlet 教程

3.1.1 JDK 版本

注意之前提到,CentOS 自带的 tomcat 版本是 7.0.76,对应的 jdk 版本是 1.8,请注意安装对应版本的 jdk

3.1.2 web.xml 设置

配置中需要包含 servlet 名称,及其对应的地址,如下片段所示

<servlet>
    <servlet-name>HelloServlet</servlet-name>
    <servlet-class>one.tricks.utils.HelloServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>HelloServlet</servlet-name>
    <url-pattern>/hello</url-pattern>
</servlet-mapping>

3.1.3 tomcat-servlet-3.0-api.jar

编写 servlet 需要这个库文件,这个库文件可以在服务器的 usr/share/java 目录找到

3.1.4 实现 HelloServlet

我们新建一个 HelloServlet.java 来实现 HelloServlet,内容如下

package one.tricks.utils;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class HelloServlet extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response) {
	try {
	    response.getWriter().println("Hello from Hello Servlet");
	} catch (IOException exception) {
	    exception.printStackTrace();
	}
    }
}

3.1.5 输出的结构

输出文件的结构如下

  • utils: 项目名
    • WEB-INF
      • classes: 编译好的 class 文件依据 package 结构存储在这里
      • web.xml: 配置文件

3.2 部署到 tomcat

准备好输出目录后,我们就可以方便地向 tomcat 部署了

3.2.1 安装 rsync

我们使用了 rsync 来复制文件,当然 scp 也可以,首先我们在服务器安装 rsync

sudo yum install rsync -y

3.2.2 为 utils 项目创建目录

tomcat 中的 webapps 存储在服务器 /usr/share/tomcat/webapps ,所以我们需要在 webapps 下创建自己的目录

sudo mkdir utils
# 目录拥有者改为自己,之前为 root ,这样才可以用自己账户复制文件
sudo chown tricks.one:tomcat utils

3.2.3 部署 utils

之后我们就可以用以下指令来部署

# 注意端口号的指定方法
rsync -r -e 'ssh -p2202' utils/ tricks.one@localhost:/usr/share/tomcat/webapps/utils/

3.3 测试

我们来用浏览器访问 http://localhost:8080/utils/hello, 正常的话,会返回我们在 HelloServlet 中写入的内容,所以我们可以在浏览器得到如下结果

4 总结

现在我们已经把我们的 web 程序部署到了服务器上,接下来我们会尝试在服务器上远程调试我们的程序