关于Ubuntu Server 18.04 LTS 安装Tomcat并配置systemctl管理Tomcat服务的问题

下面是详细的攻略:

环境准备

  1. 确保已经安装了Java环境,Tomcat需要依赖Java运行
sudo apt install default-jdk
  1. 下载Tomcat

可以在官网下载Tomcat https://tomcat.apache.org/download-90.cgi。

这里以apache-tomcat-9.0.52.tar.gz为例,在终端中执行以下命令进行下载:

wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.52/bin/apache-tomcat-9.0.52.tar.gz
  1. 安装Tomcat

先将下载的压缩包解压缩到 /usr/local 下,将其目录改名为 tomcat。

sudo tar -zxvf apache-tomcat-9.0.52.tar.gz -C /usr/local
sudo mv /usr/local/apache-tomcat-9.0.52 /usr/local/tomcat
  1. 添加Tomcat用户
sudo groupadd tomcat
sudo useradd -g tomcat -s /bin/false -d /usr/local/tomcat tomcat
  1. 设置Tomcat目录权限
sudo chgrp -R tomcat /usr/local/tomcat/
sudo chmod -R g+r /usr/local/tomcat/conf
sudo chmod -R g+x /usr/local/tomcat/conf
sudo chown -R tomcat /usr/local/tomcat/webapps/
sudo chown -R tomcat /usr/local/tomcat/work/
sudo chown -R tomcat /usr/local/tomcat/temp/
sudo chown -R tomcat /usr/local/tomcat/logs/

配置Tomcat服务

  1. 新建tomcat.service文件
sudo vim /etc/systemd/system/tomcat.service
  1. 编写文件内容
[Unit]
Description=Tomcat9
After=network.target

[Service]
Type=forking
User=tomcat
Group=tomcat

Environment=JAVA_HOME=/usr/lib/jvm/default-java
Environment=CATALINA_PID=/usr/local/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/usr/local/tomcat
Environment=CATALINA_BASE=/usr/local/tomcat

ExecStart=/usr/local/tomcat/bin/catalina.sh start
ExecStop=/usr/local/tomcat/bin/catalina.sh stop

[Install]
WantedBy=multi-user.target

其中JAVA_HOME、CATALINA_PID、CATALINA_HOME、CATALINA_BASE的路径需要根据实际情况修改。

  1. 更新systemd配置
sudo systemctl daemon-reload
  1. 启动并设置Tomcat自启动
sudo systemctl start tomcat
sudo systemctl enable tomcat

执行 systemctl status tomcat 可以查看Tomcat服务的状态。

示例

  1. 部署一个hello world的Servlet。

我们在 $CATALINA_HOME/webapps 下新建一个目录 helloworld,然后在这个目录下新建 WEB-INF 目录。在 WEB-INF 目录下新建一个 web.xml 文件,在该文件中进行 Servlet 的配置:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                             http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         id="WebApp_ID" version="3.1">
    <display-name>helloworld</display-name>

    <servlet>
      <servlet-name>HelloWorld</servlet-name>
      <servlet-class>HelloWorld</servlet-class>
    </servlet>

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

</web-app>

在 helloworld 目录下新建 HelloWorld.java 文件,编写如下类:

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class HelloWorld extends HttpServlet {
    public void doGet(HttpServletRequest request,
                      HttpServletResponse response)
        throws ServletException, IOException
    {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Hello World</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<h1>Hello World</h1>");
        out.println("</body>");
        out.println("</html>");
    }
}

当我们访问 /helloworld/hello 的时候,就可以看到输出了。

另外,还可以使用 /usr/share/tomcat9-examples/examples 中的一些示例来测试Tomcat是否正常运行。

例如,在 $CATALINA_HOME/webapps 下新建一个目录 examples,然后将 $CATALINA_HOME/webapps/examples.war 解压缩到该目录下,在浏览器中输入 http://localhost:8080/examples 可以看到 Tomcat 示例应用的主页。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:关于Ubuntu Server 18.04 LTS 安装Tomcat并配置systemctl管理Tomcat服务的问题 - Python技术站

(0)
上一篇 2023年6月2日
下一篇 2023年6月2日

相关文章

  • Spring框架读取property属性文件常用5种方法

    非常感谢你对Spring框架的关注。Spring框架支持多种读取属性文件的方式,其中最常用的五种方法有以下: 方法1:通过@Value注解获取property文件中的属性值 在Spring框架中,可以通过@Value注解快速获取配置文件中的属性和环境变量的值。首先要在Spring配置文件中进行配置,在标签中添加如下配置: <context:proper…

    Java 2023年5月31日
    00
  • hibernate查询缓存详细分析

    Hibernate查询缓存详细分析 Hibernate是一个开源的持久性框架,支持使用注解、XML文件或者API访问数据库。Hibernate查询缓存可以显著提高应用程序的执行效率和性能。本文将分析Hibernate查询缓存并提供一些示例说明。 什么是Hibernate查询缓存 Hibernate查询缓存是指在缓存中缓存查询结果,避免重复执行相同的SQL语句…

    Java 2023年5月20日
    00
  • eclipse中java变量怎么变成json格式的编码?

    首先,将Java变量转换为JSON格式是一种常见需求,可以使用一些库和工具来实现它。其中,常用的有Gson、Jackson等。 下面具体介绍使用Gson库来实现Java变量转换为JSON格式的方法。 添加Gson库依赖 在项目中添加Gson库的依赖,可以使用Maven或Gradle进行添加。以Gradle为例,在build.gradle文件的dependen…

    Java 2023年5月20日
    00
  • 微信小程序实现无缝滚动

    准备工作 微信小程序的开发环境 基本的HTML、CSS、JavaScript知识 微信小程序开发文档 实现步骤步骤一:建立一个scroll组件 在wxml文件中使用scroll组件 <scroll-view scroll-x="{{scrollX}}" scroll-y="{{scrollY}}" style=&…

    Java 2023年5月23日
    00
  • Java多线程案例之定时器详解

    Java多线程案例之定时器详解 简介 定时器(Timer)是 Java 多线程编程中的常用工具,它可以让我们方便地实现定时任务。如果想要在 Java 中实现定时器,可以使用 JavaSE 中提供的 Timer 类或者 ScheduledExecutorService 接口。 在这篇文章中,我们将深入探讨 Java 多线程编程中的定时器,并通过多个示例说明如何…

    Java 2023年5月18日
    00
  • 详解vue.js+UEditor集成 [前后端分离项目]

    详解 vue.js+UEditor 集成 [前后端分离项目] 的完整攻略,具体步骤如下: 1. 前置准备 在开始之前,我们需要先准备好以下工具和环境: Vue.js 2.0+ UEditor 1.4.3.3+ Vue-UEditor-wrapper 插件 Node.js 8.0+ Vue CLI 3.0+ Webpack 4.0+ 2. 安装 Vue-UEd…

    Java 2023年6月15日
    00
  • Java中启动线程start和run的两种方法

    启动线程是Java并发编程中的重要话题。在Java中,启动线程有两种方法,分别是调用Thread类的start()方法和直接调用run()方法。 为什么要使用线程 在Java中,线程的创建和启动可以让程序并发执行,实现多任务的处理。进程是由操作系统进行资源分配和调度的,而线程是在进程的基础上创建的,可以利用CPU时间片轮流获得执行时间。这样就可以让程序在一定…

    Java 2023年5月26日
    00
  • 基于Java方式实现数据同步

    前言 在本文中,我们将介绍如何使用Java实现数据同步的基本原理以及如何实际地应用它。本文将包含两个步骤:首先我们将使用Java编写多线程程序从一个数据库中读取数据,并将其插入到另一个数据库中,以实现数据同步的基本原理。然后我们将使用示例说明如何使用这种方式实现两个不同数据库之间的数据同步。 数据同步的基本原理 实现数据同步的基本原理是通过编写一个程序来自动…

    Java 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部