iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >java 如何远程控制tomcat启动关机
  • 401
分享到

java 如何远程控制tomcat启动关机

2024-04-02 19:04:59 401人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

最近我在考虑如何远程控制Tomcat的启动和关机,最后是有友好的界面,能够实现一键式操作的,这样会肯定是会很方便的,网上找了半天,没找到,有说使用sheel脚本的,有在tomcat服

最近我在考虑如何远程控制Tomcat的启动和关机,最后是有友好的界面,能够实现一键式操作的,这样会肯定是会很方便的,网上找了半天,没找到,有说使用sheel脚本的,有在tomcat服务器上面安装个客户端的,这些都不是我所需要的,后来不经意在网上找到一篇文章稍微讲述了下,但是他写的不完整,一些关键的地方没提到,还有一些地方写错了,我重新整理了下,在这里分享给大家。

首先,我下载了一个崭新的tomcat,我选择的是7版本的。

解压后的界面如下图所示:

这里写图片描述

这里我们先来说2个需要注意的问题:

1. WEBapps下面有个文件夹叫**manager**,很多时候我们会把webapps下面的东西都删了,然后再放我们的工程,其实这个文件夹是用来做tomcat管理的,我们要留着。

2. conf文件夹下面有个文件叫tomcat-users.xml,它是来做tomcat管理的用户权限的

我们就是利用这两块内容来实现对tomcat的远程控制的。

tomcat提供的manager项目提供了一些api,我们用到的有下面四个:

1. Http://localhost:9000/manager/text/list:可以得到此tomcat正在运行的项目以及它们的状态。

2. http://localhost:9000/manager/text/reload?path=/ROOT:重新部署一个项目ROOT项目

3. http://localhost:9000/manager/text/start?path=/ROOT:启动ROOT项目

4. http://localhost:9000/manager/text/stop?path=/ROOT:关闭ROOT项目

ROOT是我们控制的项目名称,你可以根据你实际需要去改为你的项目名。

首先,我们通过http://localhost:9000/manager/text/list得到正在运行的项目列表,得到的结果大概如下:

这里写图片描述

我们来分析下这段结果,第一行我们忽略,代表的是tomcat在运行,下面有一些项目在正常运行。

我们来项目看看下面这些,以/examples:running:0:examples为例子,它有三个:号,第一个:前的内容我们忽略,running为正在运行中(若为stopped则代表已经停止),0代表状态为正常(其他为异常)。

分析好我们就可以用java代码来操作这些了。

具体代码如下:


package com.baibin.utils;
import sun.misc.BASE64Encoder;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;
public class TomcathtmlUtil {
    public static String message(String operateURL) {
        StringBuffer dataResult = new StringBuffer();
        URL url = null;
        try {
            url = new URL(operateURL);
            URLConnection conn = (URLConnection) url.openConnection();
            
            String username = "tomcat";
            String passWord = "tomcat";
            String configuration = username + ":" + password; // manager角色的用户
            String encodedPassword = new BASE64Encoder().encode(configuration.getBytes());
            conn.setRequestProperty("Authorization", "Basic " + encodedPassword);
            InputStream is = conn.getInputStream();
            BufferedReader bufreader = new BufferedReader(new InputStreamReader(is));
            String line = null;
            while ((line = bufreader.readLine()) != null) {
                dataResult.append(line);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return dataResult.toString();
    }
    
    public List<WebApp> getTomcatWebAppData() {
        List<WebApp> webAppArrayList = new ArrayList<WebApp>();
        String data = TomcatHTMLUtil.message("http://localhost:9000/manager/text/list");
        String[] oldDataStrs = data.split("/");
        if (oldDataStrs[0].startsWith("OK")) {
            for (int i = 1; i < oldDataStrs.length; i++) {
                String[] names = oldDataStrs[i].split(":");//长度为4 0 :忽略 1:状态 2:0 状态   3:名称
                WebApp webApp = new WebApp();
                webApp.setName(names[3]);
                if (names[1].equals("running")) {
                    if (oldDataStrs[i].split(":")[2].equals("0")) {
                        webApp.setStatus("运行");
                    } else {
                        webApp.setStatus("异常");
                    }
                } else if (names[1].equals("stopped")) {
                    if (oldDataStrs[i].split(":")[2].equals("0")) {
                        webApp.setStatus("停止");
                    } else {
                        webApp.setStatus("异常");
                    }
                } else {
                    webApp.setStatus("异常");
                }
                webAppArrayList.add(webApp);
            }
            //}
        }
        return webAppArrayList;
    }
    
    public boolean reloadWebApp(String webAppName) {
        String data = TomcatHTMLUtil.message("http://localhost:9000/manager/text/reload?path=/" + webAppName);
        if (data.startsWith("OK")) {
            return true;
        } else {
            return false;
        }
    }
    
    public boolean stopWebApp(String webAppName) {
        String data = TomcatHTMLUtil.message("http://localhost:9000/manager/text/stop?path=/" + webAppName);
        if (data.startsWith("OK")) {
            return true;
        } else {
            return false;
        }
    }
    
    public boolean startWebApp(String webAppName) {
        String data = TomcatHTMLUtil.message("http://localhost:9000/manager/text/start?path=/" + webAppName);
        if (data.startsWith("OK")) {
            return true;
        } else {
            return false;
        }
    }
}
package com.baibin.utils;

public class WebApp {
    
    private String name;
    
    private String status;
    @Override
    public String toString() {
        return "WebApp{" +
                "name='" + name + '\'' +
                ", status='" + status + '\'' +
                '}';
    }
    public String getName() {
        return name;
    }
    public String getStatus() {
        return status;
    }
    public void setName(String name) {
        this.name = name;
    }
    public void setStatus(String status) {
        this.status = status;
    }
}

调用方式如下:


<body>
<%
    TomcatHTMLUtil util = new TomcatHTMLUtil();
    
    util.startWebApp("ROOT");
    
    util.stopWebApp("ROOT");
%>
</body>

这样就可以远程控制了,前台写的比较简单,还可以继续优化,当然那不是重点,这里就不写了。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。如有错误或未考虑完全的地方,望不吝赐教。

--结束END--

本文标题: java 如何远程控制tomcat启动关机

本文链接: https://www.lsjlt.com/news/123932.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java 如何远程控制tomcat启动关机
    最近我在考虑如何远程控制tomcat的启动和关机,最后是有友好的界面,能够实现一键式操作的,这样会肯定是会很方便的,网上找了半天,没找到,有说使用sheel脚本的,有在tomcat服...
    99+
    2024-04-02
  • 如何自制控制进程和控制开机启动项的批处理
    这篇文章主要为大家展示了“如何自制控制进程和控制开机启动项的批处理”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何自制控制进程和控制开机启动项的批处理”这篇文章吧。自动结束强制智能结束.vbs...
    99+
    2023-06-08
  • Linux下如何启动与关闭Tomcat
    这篇文章给大家分享的是有关Linux下如何启动与关闭Tomcat的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开...
    99+
    2023-06-27
  • 计算机远程控制怎么开启
    要开启计算机远程控制,需要按照以下步骤进行操作:1. 打开计算机的控制面板,选择“系统和安全”。2. 在“系统和安全”窗口中,选择“...
    99+
    2023-06-12
    计算机远程控制
  • 手机如何远程控制电脑
    这篇文章主要讲解了“手机如何远程控制电脑”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“手机如何远程控制电脑”吧!手机远程控制电脑的方法:要实现手机远程操作电脑,是需要第三方软件的。下载完成后...
    99+
    2023-07-02
  • weblogic如何控制节点启动
    在WebLogic服务器中,可以通过以下几种方式来控制节点的启动: 使用WebLogic的管理控制台:在管理控制台中,可以选择特...
    99+
    2023-10-27
    weblogic
  • win10如何关闭开机自动启动程序
    这篇文章主要讲解了“win10如何关闭开机自动启动程序”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“win10如何关闭开机自动启动程序”吧!win10关闭开机自动启动程序教程首先我们点击右下...
    99+
    2023-07-01
  • nvidia控制面板禁止开机启动如何设置
    今天小编给大家分享一下nvidia控制面板禁止开机启动如何设置的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。nvidia控制...
    99+
    2023-07-01
  • 手机如何远程控制云服务器
    如果您想远程控制云服务器,可以尝试以下几种方法: 利用云服务器控制端控制:您可以在云服务器控制端上设置您的应用程序、文件、邮件等访问权限和安全措施,以便您可以控制您的云服务器。您可以通过在控制台上输入指令来访问云服务器中的文件、文件夹和...
    99+
    2023-10-26
    远程控制 服务器 手机
  • golang如何控制开启线程数
    在Go语言中,开启线程可以使用go关键字。但是,并发操作的线程数是由Go运行时系统自动管理的,开发者无法直接控制。Go运行时系统会根...
    99+
    2023-10-22
    golang
  • mstsc如何远程控制电脑
    本篇内容主要讲解“mstsc如何远程控制电脑”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mstsc如何远程控制电脑”吧!远程控制方法:1、用“win+i”键打开“windows设置”界面,点击...
    99+
    2023-07-05
  • win11开机启动项如何关闭
    这篇“win11开机启动项如何关闭”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“win11开机启动项如何关闭”文章吧。win...
    99+
    2023-07-01
  • win10如何关闭开机启动项
    这篇文章主要介绍了win10如何关闭开机启动项的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇win10如何关闭开机启动项文章都会有所收获,下面我们一起来看看吧。win10关闭开机启动项的方法首先右键点击左下角“...
    99+
    2023-07-01
  • 手机如何远程控制云服务器电脑
    如果您想远程控制云服务器电脑,以下是一些可能有用的步骤: 连接到目标服务器:确保您已经连接到云服务器并且与之进行了身份验证,以便只有您和云服务器之间可以访问它。 安装远程控制软件:下载并安装远程控制软件,例如 PowerShell 或 ...
    99+
    2023-10-26
    远程控制 服务器 电脑
  • 阿里云服务器如何远程控制手机
    阿里云服务器可以通过远程桌面协议(RDP)来远程控制手机。具体步骤如下: 在阿里云服务器上安装一个支持RDP协议的远程桌面软件,比如Windows自带的远程桌面连接工具或者第三方软件如TeamViewer等。 在手机上下载并安装一个支持...
    99+
    2023-10-27
    阿里 远程控制 服务器
  • 一次tomcat源码启动控制台中文乱码的调试过程记录
    发现问题 今天准备学习下tomcat源码,于是从官网下载了tomcat的源码,导入到IDEA中,使用maven工具build完项目之后,启动项目,控制台打印了tomcat日志,但是中...
    99+
    2024-04-02
  • Linux如何实现远程控制
    小编给大家分享一下Linux如何实现远程控制,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Linux一般作为服务器使用,而服务器一般放在机房,你不可能在机房操作你...
    99+
    2023-06-28
  • teamviewer远程控制如何使用
    本篇内容介绍了“teamviewer远程控制如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!teamviewer远程控制使用方法:一、...
    99+
    2023-07-01
  • win10如何远程控制电脑
    本文小编为大家详细介绍“win10如何远程控制电脑”,内容详细,步骤清晰,细节处理妥当,希望这篇“win10如何远程控制电脑”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。方法/步...
    99+
    2022-12-02
    win10
  • 手机如何远程控制云服务器设备
    如果您想远程控制云服务器设备,请按照以下步骤操作: 打开控制面板,选择“用户账户和网络”。 在弹出的用户账户框中,确认您的账户是否已经启用远程控制功能。 如果您是新用户,请确认您已经完成了账户创建和设置。 在本地计算机中,右键单击您要远...
    99+
    2023-10-26
    远程控制 服务器 设备
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作