原文:http://blog.csdn.net/liuyuqin1991/article/details/49280777

步骤如下: 
①:首先授权用户使获得这些权限 
You can find the role names in the web.xml file of the Manager web application. The available roles are:

manager-gui — Access to the HTML interface. 
manager-status — Access to the “Server Status” page only. 
manager-script — Access to the tools-friendly plain text interface that is described in this document, and to the “Server Status” page. 
manager-jmx — Access to JMX proxy interface and to the “Server Status” page.

具体方法:修改/conf目录下的tomcat-users.xml文件,添加如下代码:

<role rolename="manager-status"/>
<role rolename="manager"/>
<role rolename="manager-jmx"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="admin"/>
<user username="admin" password="123456" roles="manager,manager-gui,admin,manager-status,manager-jmx,manager-script"/>

这里创建一个admin 密码为123456的用户

②:创建通用tomcatUtil方法:

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();
//这里我是把admin,123456 这个用户信息放到了一个json文件中以json形式存放,然后取出来,如果不是以这种方式存放,则可以直接设置username = admin ,password =123456
String data = FileUtil.readJson(); String username = data.substring(1,data.length()-1).split(",")[0].split(":")[1].substring
(1,data.substring(1,data.length()-1).split(",")[0].split(":")[1].length()-1);
String password =data.substring(1,data.length()-1).split(",")[1].split(":")[1].substring
(1,data.substring(1,data.length()-1).split(",")[0].split(":")[1].length()); String configuration = username+":"+password; // manager角色的用户
String encodedPassword = new BASE64Encoder().encode(configuration.getBytes());
conn.setRequestProperty("Authorization", "Basic " + encodedPassword);
// URL授权访问 -- End 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 ArrayList<WebApp> getTomcatWebAppData(){ ArrayList<WebApp> webAppArrayList = new ArrayList<WebApp>(); String data = TomcatHTMLUtil.message("http://localhost:8080/manager/text/list"); String[] oldDataStrs = data.split("/"); if(oldDataStrs[0].startsWith("OK")){
for (int i = 0; i < oldDataStrs.length; i++) {
String name = oldDataStrs[i].split(":")[0];
if(name.startsWith("legacy-proxy")){
WebApp webApp = new WebApp();
webApp.setName(name);
if(oldDataStrs[i].split(":")[1].equals("running")){
if(oldDataStrs[i].split(":")[2].equals("0")){
webApp.setStatus("运行");
}
else{
webApp.setStatus("异常");
}
}
else if(oldDataStrs[i].split(":")[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:8080/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:8080/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:8080/manager/text/start?path=/"+webAppName);
if(data.startsWith("OK")){
return true;
}
else {
return false;
}
}

webApp的domain对象:

package domain;

/**
* Created by Administrator on 2015/10/20.
* webApp的相关信息
*/ public class WebApp { /**
* 项目名称
*/
private String name; /**
* 运行状态 "成功" or "停止"
*/
private String 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;
}
}

基本上核心功能已经出来了,剩下的就是写桌面swing程序了,我就不贴代码了 
OK,完成收工,其实是很简单的。

java程序监控tomcat中部署的项目的状态以及控制某些项目的启动停止的更多相关文章

  1. 【JVM】linux上tomcat中部署的web服务,时好时坏,莫名其妙宕机,报错:There is insufficient memory for the Java Runtime Environment to continue.

    =========================================================================================== 环境: linu ...

  2. 【转】Tomcat中部署java web应用程序

    http://www.blogjava.net/jiafang83/archive/2009/06/02/279644.html 转载:今天给大家介绍怎样在Tomcat5.5.9中部署Java Web ...

  3. 在Tomcat中部署Java Web应用程序

    在Tomcat中部署Java Web应用程序有两种方式:静态部署和动态部署.在下文中$CATALINA_HOME指的是Tomcat根目录. 一.静态部署      静态部署指的是我们在服务器启动之前部 ...

  4. Java Web开发: Tomcat中部署项目的三种方法

    web开发,在tomcat中部署项目的方法: 可以参考http://m.blog.csdn.net/blog/u012516903/15741727 定义$CATALINA_HOME指的是Tomcat ...

  5. Tomcat中部署Java Web应用程序的方式

    Tomcat中部署Java Web应用程序的几种方式: #PetWeb是工程名 1.在TOMCAT_HOME\conf\server.xml文件的HOST节点中加入 <Context docBa ...

  6. 在Tomcat中部署Java Web应用程序几种方式

    在Tomcat中部署Java Web应用程序有两种方式:静态部署和动态部署.在下文中$CATALINA_HOME指的是Tomcat根目录. 一.静态部署      静态部署指的是我们在服务器启动之前部 ...

  7. Intellij IDEA 创建Web项目并在Tomcat中部署运行(不使用maven)【转载】

    原文链接:http://www.thinksaas.cn/topics/0/350/350000.html 一.创建Web项目 1.File -> New Module,进入创建项目窗口 2.选 ...

  8. Intellij IDEA 创建Web项目并在Tomcat中部署运行

      一.创建Web项目 1.File -> New Module,进入创建项目窗口 2.选择Java类型,在 Module name 处输入项目名,点击Next 3.勾选 Web Applica ...

  9. 在Tomcat中部署Web项目的操作方法,maven项目在Tomcat里登录首页报404

     maven项目在Tomcat里登录首页报404, 解决:编辑conf/server.xml进行配置<Host>里的<Context>标签里的path. <Context ...

随机推荐

  1. 爬虫:Scrapy7 - Scrapy终端(Scrapy shell)

    Scrapy 终端是一个交互终端,可以在未启动 spider 的情况下尝试及调试你的爬取代码.其本意是用来测试提取数据的代码,不过可以将其作为正常的 Python 终端,在上面测试任何 Python ...

  2. ZOJ 3544 / HDU 4056 Draw a Mess( 并查集好题 )

    方法参见:http://blog.acmol.com/?p=751 从最后一个线段开始倒着处理(因为之后的线段不会被它之前的线段覆盖),把这条线段所覆盖的所有线段编号合并到一个集合里,并以最左边线段编 ...

  3. Struts2 学习笔记

    1)Strust2是以WebWork为核心,采用拦截器的机制对用户请求进行处理. 2)Struts2框架结构: 3)简单来看整个Struts2的处理过程可以简单的理解为 用户的请求发送给对应的Acti ...

  4. airTest 实战之 -- 【征途】自动打怪回城卖物品

    airTest是一个跨平台的.基于图像识别的UI自动化测试框架,适用于游戏和App,支持平台有Windows.Android和iOS 官方文档: http://airtest.netease.com/ ...

  5. Python字符串相关

    #字符串的相关操作 #基本操作 #+ 字符串连接操作 str1 = '来是come走是go' str2 = '点头yes摇头no' result = str1 + str2 print(result) ...

  6. BZOJ2756 [SCOI2012]奇怪的游戏 【网络流 + 二分】

    题目 Blinker最近喜欢上一个奇怪的游戏. 这个游戏在一个 N*M 的棋盘上玩,每个格子有一个数.每次 Blinker 会选择两个相邻 的格子,并使这两个数都加上 1. 现在 Blinker 想知 ...

  7. 《R语言实战》读书笔记--为什么要学

    本人最近在某咨询公司实习,涉及到了一些数据分析的工作,用的是R语言来处理数据.但是在应用的过程中,发现用R很不熟练,所以再打算学一遍R.曾经花一个月的时间看过一遍<R语言编程艺术>,还用R ...

  8. 怎么用tomcat对socket接口的程序进行调试

    对socket(套接字)的demo方法大多都是用main方法进行测试的,那如何用tomcat进行测试呢? 这里需要借助一个工具:工具的名字是:Sockettool.exe .下图是该工具的内容.连上监 ...

  9. MFC 在窗口上画指定大小的ICON

    CPaintDC dc(this); HICON hIcon = (HICON)::LoadImage(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_ICON) ...

  10. jquerydom对象和字符串之间的转换

    字符串转jquery对象:var tmp = $('<div>dd</div>').attr('id','bbq'); //用$符包裹起来即可 jquery对象转字符串: tm ...