日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

java 如何遠程控制tomcat啟動關機

瀏覽:152日期:2022-08-14 10:57:40

最近我在考慮如何遠程控制tomcat的啟動和關機,最后是有友好的界面,能夠實現一鍵式操作的,這樣會肯定是會很方便的,網上找了半天,沒找到,有說使用sheel腳本的,有在tomcat服務器上面安裝個客戶端的,這些都不是我所需要的,后來不經意在網上找到一篇文章稍微講述了下,但是他寫的不完整,一些關鍵的地方沒提到,還有一些地方寫錯了,我重新整理了下,在這里分享給大家。

首先,我下載了一個嶄新的tomcat,我選擇的是7版本的。

解壓后的界面如下圖所示:

java 如何遠程控制tomcat啟動關機

這里我們先來說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得到正在運行的項目列表,得到的結果大概如下:

java 如何遠程控制tomcat啟動關機

我們來分析下這段結果,第一行我們忽略,代表的是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(); /** * 這里的用戶名和密碼是由tomcat的%tomcat_home%/conf/tomcat-users.xml里所配置的用戶 */ 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(); } /** * 獲取tomcat正在運行的webApp的參數 * * @return */ 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; } /** * 重新部署一個項目 * * @param webAppName * @return */ 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;} } /** * 停止一個項目 * * @param webAppName * @return */ 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;} } /** * 開始一個項目 * * @param webAppName * @return */ 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;/** * Created by ibm on 2017/3/22. */public class WebApp { /** * 項目名稱 */ private String name; /** * 運行狀態 '成功' or '停止' */ 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(); /*啟動ROOT項目*/ util.startWebApp('ROOT'); /*關閉ROOT項目*/ util.stopWebApp('ROOT');%></body>

這樣就可以遠程控制了,前臺寫的比較簡單,還可以繼續優化,當然那不是重點,這里就不寫了。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。如有錯誤或未考慮完全的地方,望不吝賜教。

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日本aⅴ免费视频一区二区三区| 久久精品免费一区二区三区| 欧洲精品一区二区三区| 精品一区av| 久久久国产精品入口麻豆| 精品一二三区| 99久久夜色精品国产亚洲1000部| 国产色播av在线| 欧美精品一二| 日韩在线黄色| 成人综合一区| 亚洲激情偷拍| 欧美偷窥清纯综合图区| 精品九九在线| 亚洲精品电影| 亚洲精品日韩久久| 精品国产网站| 九九久久婷婷| 欧美日韩一区自拍| 日韩欧美精品综合| 国产毛片久久| 国产精品探花在线观看| 精品国产午夜肉伦伦影院| 久久久久蜜桃| 欧美日韩1区2区3区| a国产在线视频| 亚洲综合精品四区| 国产福利资源一区| 欧美日韩国产免费观看视频| 亚洲精品伦理| 亚洲成人不卡| 亚洲日本三级| 91av亚洲| 日本欧美一区二区| 蜜臀国产一区| 亚洲精品乱码日韩| 日本午夜大片a在线观看| 日韩一区欧美二区| 激情视频网站在线播放色| 综合色一区二区| 视频福利一区| 久久超级碰碰| 中文字幕免费一区二区| 国产一区二区三区四区大秀| 蜜臀精品一区二区三区在线观看| 久久精品资源| 日韩一区二区三区在线看| 天堂网av成人| 免费看久久久| 亚洲精品乱码久久久久久蜜桃麻豆 | 国产日韩欧美一区二区三区在线观看| 神马午夜在线视频| 日本特黄久久久高潮| 激情六月综合| 麻豆精品少妇| 亚洲区第一页| 激情五月综合网| 成人日韩在线| 久久久精品区| 日韩国产欧美三级| 好看的av在线不卡观看| 成人国产精品一区二区网站| 日本不卡一区二区三区| 午夜国产精品视频| 岛国精品一区| 国产亚洲欧美日韩在线观看一区二区| 国产午夜精品一区二区三区欧美| 日韩欧美精品| 9999国产精品| 欧美经典一区| 日本视频中文字幕一区二区三区| 爽好多水快深点欧美视频| 香蕉久久99| 亚洲va中文在线播放免费| 国产精品一线| 亚洲精品高潮| 亚洲青青久久| 亚洲专区一区| 亚洲激情不卡| 日韩精品免费一区二区在线观看| 国产欧美日韩亚洲一区二区三区| 亚洲综合图色| 久久亚洲色图| 亚洲欧美不卡| 亚洲无线观看| 中文字幕av一区二区三区四区| 美女久久一区| 国产美女精品| 在线视频精品| 亚洲一区二区三区免费在线观看 | 久久wwww| 久久中文字幕一区二区三区| 国产日韩欧美三区| 综合一区在线| 日韩欧美精品一区二区综合视频| 亚洲精品少妇| 日本不卡一二三区黄网| 欧美精品三级在线| 卡一卡二国产精品| 久久电影tv| 日韩国产一区二区三区| 色天使综合视频| 香蕉国产精品| 影音先锋久久精品| 欧美亚洲tv| 久久精品二区亚洲w码 | 欧美激情网址| 精品国产亚洲日本| 伊人久久视频| 99日韩精品| 亚洲精品无吗| 欧美成人一二区| 日本免费久久| 视频一区在线视频| 18国产精品| 国产一区二区精品福利地址| 国产成人久久精品一区二区三区| 丝袜美腿诱惑一区二区三区| 久久伦理在线| 首页国产欧美久久| 国产精品亚洲片在线播放| 美女国产精品久久久| 国产一区二区三区四区二区| 丁香六月综合| 午夜一级久久| 国产乱码精品一区二区亚洲| 91免费精品| 鲁大师成人一区二区三区| 国产精品一区二区精品| 亚洲精品一级二级| 亚洲一区成人| 欧美亚洲综合视频| 中文字幕人成乱码在线观看| 激情综合网址| 免费成人在线视频观看| 久久国产日韩欧美精品| 久久超碰99| 欧美性感美女一区二区| 日韩在线播放一区二区| 欧美精品99| 999国产精品| 中文视频一区| 精品中文在线| 图片区亚洲欧美小说区| 日韩精品久久久久久| 亚洲深夜视频| 中文字幕av一区二区三区人| 狠狠久久伊人| 蜜桃伊人久久| 久久精品理论片| 午夜久久tv| 国产日韩欧美一区二区三区 | 国产伦一区二区三区| 日韩国产一区| 日韩中文av| 99精品视频在线| 四虎精品一区二区免费| 福利视频一区| 亚洲综合激情在线| 国产自产自拍视频在线观看| 人人爽香蕉精品| 成人午夜网址| 日韩一区二区三区精品视频第3页 日韩一区二区三区免费视频 | 精品久久美女| 国产亚洲精品自拍| 国产成人久久精品麻豆二区| 亚洲毛片视频| 亚洲第一精品影视| 国产精品www.| 亚洲影视一区二区三区| 一区二区三区四区日本视频| 日韩精品一区二区三区av | 亚洲在线成人| 在线天堂中文资源最新版| 日韩av一区二区三区四区| 激情综合在线| 日韩欧美网址| 国产成人免费| 国产精品一区二区精品视频观看 | 国产亚洲电影| 一区二区三区四区日韩| 成人羞羞在线观看网站| 国产精品视频一区二区三区四蜜臂| 久久久国产亚洲精品| 国产精品18| 日韩国产在线一| 天堂av在线一区| 国产一区视频在线观看免费| 久久久久九九精品影院| 97精品资源在线观看| 亚洲一级大片| 亚洲精品乱码久久久久久蜜桃麻豆| 午夜久久美女| 99国产精品| 99在线精品免费视频九九视| 蜜桃精品在线| 国产在线|日韩| 999国产精品999久久久久久| 国产一区二区三区天码| 国产精品欧美在线观看|