网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.Struts模块化编程教程(三).
.Java程序设计之“对象”篇.
.JDBC2.0扩展API(3).
.java基础问题请教!.
.java图像浏览器.
.为 Web 服务构建 Struts 应用程序.
.Delete 方法.
.Java核心代码例程之:(JAXP) XSL.
.程序员注意:Java开发最容易犯的.
.Java 在Client/Server 网络中的应.
.WIN2000下J2EE的安装及布署.
.java一路走来的感受.
.Javascript实例教程(20) OLE Aut.
.java访问com组件_jacob使用指南.
.JBuilder使用中的常见问题归纳整.
.Java游戏起步:(一)线程与线程.
.Struts1.1b3部分源代码分析..
.Apache Beehive——Worksho.
.Java Learning Path(二)、书籍.
.技术分享 如何实现基于J2EE的服务.

定义Service4JMX2组件 简单扩展MX4j

发表日期:2008-1-5



  前做的服务器框架,已经支持JMXri的JMX实现,但框架直接绑定JMX环境,不是一个良好的设计,当时没想到好办法。最近研究MX4j的实现,重构了一下,可以同时支持JMXri和MX4j了,与JMX环境接耦了。
现在又有了新的需求,要求提供HttpServer功能,在Service4Sock的基础上已经实现了,但是浪费了一个端口资源,需要想办法与JMX公用才好。继续研究MX4j的源码,又有了新的收获。

已经完成的工作:
* DONE 定义Service4JMX服务器组件,使用JMX技术仅仅为了便于治理;主要使用Spring作为IoC容器;
* DONE 修改register/unregister;对于"Start:开头的,自动调用start()/stop()
* DONE 定义Service4JMX2服务器组件,同时支持JMXri和MX4j等多种JMX实现!
* DONE 开头对应Domain;修改为标志:start=1,stop=1
* DONE 使用JMXri返回Html能直接显示;而在MX4j中被自动替换;
* DONE 配置:对于MX4j使用processorNameString替换processorName,后者需要ObjectName类型;
* TODO 如何直接显示某个XML文档,而非html文档?(即没有XSLT解析器)

某个业务日志需求
(1)业务日志需要按天写到一文件中去,一天一个文件,参照以前日志文件规则
(2)服务器支持一监控端口,用户可以通过浏览器访问端口获取数据页面
(3)用户可见到的数据内容参考老的业务服务器内容
(4)用户view由日志内容和一样式文件组合而成,采用技术为xml(日志内容)+xsl(样式文件)

我的思路是,扩展HttpAdaptor的实现,定义若干新的Command功能。

代码
  1. public interface MyHttpAdaptorMBean extends HttpAdaptorMBean, MBeanRegistration {}   
  2. public class MyHttpAdaptor extends HttpAdaptor implements MyHttpAdaptorMBean {}  

研究mx4j.tools.adaptor.http.HttpAdaptor源码,发现以下几处:
1,缺省提供的功能项:
代码
  1. private String[][] defaultCommandProcessors = {   
  2.    {"server", "mx4j.tools.adaptor.http.ServerCommandProcessor"},   
  3.    {"serverbydomain", "mx4j.tools.adaptor.http.ServerByDomainCommandProcessor"},   
  4.    {"mbean", "mx4j.tools.adaptor.http.MBeanCommandProcessor"},   
  5.    {"setattributes", "mx4j.tools.adaptor.http.SetAttributesCommandProcessor"},   
  6.    {"setattribute", "mx4j.tools.adaptor.http.SetAttributeCommandProcessor"},   
  7.    {"getattribute", "mx4j.tools.adaptor.http.GetAttributeCommandProcessor"},   
  8.    {"delete", "mx4j.tools.adaptor.http.DeleteMBeanCommandProcessor"},   
  9.    {"invoke", "mx4j.tools.adaptor.http.InvokeOperationCommandProcessor"},   
  10.    {"create", "mx4j.tools.adaptor.http.CreateMBeanCommandProcessor"},   
  11.    {"constrUCtors", "mx4j.tools.adaptor.http.ConstructorsCommandProcessor"},   
  12.    {"relation", "mx4j.tools.adaptor.http.RelationCommandProcessor"},   
  13.    {"empty", "mx4j.tools.adaptor.http.EmptyCommandProcessor"}};  
2,用户增加新的页面:
代码
  1. public void addCommandProcessor(String path, HttpCommandProcessor processor)   
  2. public void addCommandProcessor(String path, String processorClass)  
3,设置XSLT解析器:
代码
  1. public void setProcessor(ProcessorMBean processor)   
  2. public void setProcessorClass(String processorClass)   
  3. public void setProcessorNameString(String processorName) throws MalformedObjectNameException   
  4. public void setProcessorName(ObjectName processorName)  

4,defaultCommandProcessors在preRegister()/buildCommands()中被添加到commands中。而commands在run()/getProcessor(String path)中使用,然后由postProcess(httpOut, httpIn, document)来处理,最后生成text/html文档。因而可能需要修改postProcess,判定对应的xsl文件是否存在。


上一篇:新手入门:JAVA数据库基本操作指南 人气:554
下一篇:利用JavaBeans在应用程序中创建组件 人气:862
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐