【任务笔记】JAVA编程实现对Tomcat上部署项目的监测和控制
来源:互联网 发布:windows store app 编辑:程序博客网 时间:2024/05/16 15:52
其实这东西完全不用自己写的,jdk提供了对操作系统监控的工具jconsole,只要稍加改动连接一下tomcat就可以对其进行监测和控制。
但老板的意思是要我写一个出来,去掉繁复的功能,只留下基础的功能,这样就可以嵌入到某项目中,或者做成系统的守护进程。并且点名要求使用JMX(←关键词啊!)
所以研究了几天之后做出了现在这个东东——由spring框架实现的,JMX监测管理Tomcat上部署的项目,基于页面显示的小工具。
=====================【请点击查看→】http://bbs.csdn.net/topics/390715823====================
因为有spring框架的支持,就变得容易很多了。
配置4个bean就可以了
1.定义解释mbean中注解的bean
<bean id="annoJmxAttrSource"class="org.springframework.jmx.export.annotation.AnnotationJmxAttributeSource" />
2.定义assembler bean,装配bean MetadataMBeanInfoAssembler是唯一实现
<bean id="mBeanAssembler"class="org.springframework.jmx.export.assembler.MetadataMBeanInfoAssembler"><!-- 注入定义的annoJmxAttrSource --><property name="attrSource" ref="annoJmxAttrSource" /></bean>
3. 定义JMX的页面访问方式,并设置访问端口号
<bean id="httpAdapServer" class="com.sun.jdmk.comm.HtmlAdaptorServer"><property name="port"><!-- 设定访问的端口号 --><value>8099</value></property></bean>
4.定义MBeanExporter bean, 也spring jmx最核心的类
<bean id="mBeanExporter" class="org.springframework.jmx.export.MBeanExporter"lazy-init="false"><!-- 注入上面定义的assembler --><property name="assembler" ref="mBeanAssembler" /><!-- 将定义的mbean注册到mBeanExporter中 --><property name="beans"><map><!-- 将定义的HtmlAdaptorServer的bean加入mbean map中 --><entry key="MyAgent:name=jmxAdapter,port=8099" value-ref="htmlAdapServer" /></map></property></bean>
这样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的配置就比较简单了
<package name="jmx" namespace="/" extends="struts-default"><action name="start" class="com.wyd.action.Test"method="JMXstart"><result name="success">index.jsp</result></action><action name="stop" class="com.wyd.action.Test"method="JMXstop"><result name="success">index.jsp</result></action></package>
index.jsp页面就两个button和一个现实信息的struts标签
启动之后看一下效果:(因为操作界面在localhost:8099,所以我加了个跳转)
操作界面里可以看到WEBModule。因为工作空间是新换的,所以只有一个用于测试的AAA和当前的Jmx
点击进入AAA之后在最下面能看到开启和关闭进程的按钮:
点击关闭之后,在地址栏访问AAA的项目就会显示访问失败,再点击开启又可以访问到了。说明Jmx运行成功了。
问题:这个有一点不好是只能监测到当前tomcat里的web项目,没有部署到tomcat中的项目和java项目就不能被监测到了。需求要求的是多个jvm,什么类型都有的,比这个要苛刻些,所以这个版本被淘汰鸟。。。
关于脱离tomcat直接监测系统服务并进行处理的方法,正在做啊。。。
论坛里也发了求助贴,只不过还没人鸟我。。。【请点击查看→】http://bbs.csdn.net/topics/390715823
- 【任务笔记】JAVA编程实现对Tomcat上部署项目的监测和控制
- 部署在tomcat上的java web项目连接SQLservices
- java的项目如何部署到tomcat上
- tomcat自动运行磁盘任意位置上的项目、使用Maven对tomcat进行自动部署
- 手动再tomcat上部署java项目
- tomcat上配置数据库连接和项目部署
- sringboot项目在tomcat上的部署
- Tomcat部署Java和php相结合的项目
- 阿里云部署Java web项目初体验(转)/linux 上配置jdk和安装tomcat
- 阿里云部署Java web项目初体验(转)/linux 上配置jdk和安装tomcat
- Java并发编程-20-在执行器中取消任务和控制任务的完成
- tomcat部署java项目
- tomcat上部署web项目
- Tomcat的配置和项目的部署
- 相同的项目在不同版本的tomcat上部署启动报错: java.lang.AbstractMethodError
- Tomcat部署java项目出错的解决办法
- java项目部署到tomcat的常见问题
- tomcat部署java web项目的过程
- c++中如何返回内置类型的最值——使用
- TOJ 1883 ZOJ 1298 POJ 1135 Domino Effect / Dijkstra
- 响应时间(response time)和吞吐量(throughput)
- 什么是真正的实时操作系统
- C# JsonHelper
- 【任务笔记】JAVA编程实现对Tomcat上部署项目的监测和控制
- 关于线程(一)线程的基础
- Dynamics CRM 资源
- DIV的内容自动换行
- ASP.NET如何将Excel文档转换成pdf
- java中Serializable序列化与反序列化的作用
- 下拉列表框弹出树(ComboBoxTreeView)
- 编写过哪些有意思的应用到生活当中的小程序
- java DAO模板