【任务笔记】JAVA编程实现对Tomcat上部署项目的监测和控制

其实这东西完全不用自己写的,jdk提供了对操作系统监控的工具jconsole,只要稍加改动连接一下tomcat就可以对其进行监测和控制。


但老板的意思是要我写一个出来,去掉繁复的功能,只留下基础的功能,这样就可以嵌入到某项目中,或者做成系统的守护进程。并且点名要求使用JMX(←关键词啊!)

所以研究了几天之后做出了现在这个东东——由spring框架实现的,JMX监测管理Tomcat上部署的项目,基于页面显示的小工具。


=====================【请点击查看→】http://bbs.csdn.net/topics/390715823====================


因为有spring框架的支持,就变得容易很多了。

配置4个bean就可以了

1.定义解释mbean中注解的bean


2.定义assembler bean,装配bean MetadataMBeanInfoAssembler是唯一实现


	
	

3. 定义JMX的页面访问方式,并设置访问端口号


	
		
		8099
	

4.定义MBeanExporter bean, 也spring jmx最核心的类


	
	
	
	
		
			
			
		
	

这样spring的步骤就配置完成了。这时候只需要简单调用一下,我写了个action,提供开启、关闭的方法,并通过struts处理操作

import org.springframework.beans.factory.annotation.Autowired;

import com.opensymphony.xwork2.ActionSupport;
import com.sun.jdmk.comm.HtmlAdaptorServer;

public class Test extends ActionSupport
{

	@Autowired
    private HtmlAdaptorServer htmlAdapServer;

    public String JMXstart() throws Exception 
    {
        this.addActionMessage("启动JMX监控");
        htmlAdapServer.start();
        return SUCCESS;
    }
   
    public String JMXstop() throws Exception 
    {
    	this.clearMessages();
    	this.addActionMessage("停止JMX监控");
        htmlAdapServer.stop();
        return SUCCESS;
    }

	public HtmlAdaptorServer getHtmlAdapServer() 
	{
		return htmlAdapServer;
	}

	public void setHtmlAdapServer(HtmlAdaptorServer htmlAdapServer) 
	{
		this.htmlAdapServer = htmlAdapServer;
	}
    
}

struts2的配置就比较简单了


	
		index.jsp
	
	
		index.jsp
	

index.jsp页面就两个button和一个现实信息的struts标签

启动之后看一下效果:(因为操作界面在localhost:8099,所以我加了个跳转)

【任务笔记】JAVA编程实现对Tomcat上部署项目的监测和控制_第1张图片

操作界面里可以看到WEBModule。因为工作空间是新换的,所以只有一个用于测试的AAA和当前的Jmx

【任务笔记】JAVA编程实现对Tomcat上部署项目的监测和控制_第2张图片

点击进入AAA之后在最下面能看到开启和关闭进程的按钮:

【任务笔记】JAVA编程实现对Tomcat上部署项目的监测和控制_第3张图片

点击关闭之后,在地址栏访问AAA的项目就会显示访问失败,再点击开启又可以访问到了。说明Jmx运行成功了。


问题:这个有一点不好是只能监测到当前tomcat里的web项目,没有部署到tomcat中的项目和java项目就不能被监测到了。需求要求的是多个jvm,什么类型都有的,比这个要苛刻些,所以这个版本被淘汰鸟。。。


关于脱离tomcat直接监测系统服务并进行处理的方法,正在做啊。。。

论坛里也发了求助贴,只不过还没人鸟我。。。【请点击查看→】http://bbs.csdn.net/topics/390715823


你可能感兴趣的:(java)