- 浏览: 236410 次
- 性别:
- 来自: 北京
最新评论
-
Xgeeeeek:
讲的很细致,多谢~
JAVA RMI 实例 -
zontim:
...
JAVA RMI 实例 -
czl026:
简单明了,谢谢
[JMX一步步来] 1、JMX的Hello World -
manxisuo:
jtianguo 写道服务端和客户端在同一个包下,这句代码He ...
JAVA RMI 实例 -
manxisuo:
非常好,多谢!!
JAVA RMI 实例
- import org.jboss.system.ServiceMBean;
- public interface HelloWorldServiceMBean extends ServiceMBean {
- String getMessage();
- void setMessage(String message);
- }
2、HelloWorldService实现类
然后写出HelloWorldServiceMBean接口的实现类HelloWorldService,这个实现类还必须继承ServiceMBeanSupport类。这种类再简单不过了,就是属性和相应的set/get方法,EJB中叫实体类、Hibernate中叫POJO。
- import org.jboss.system.ServiceMBeanSupport;
- public class HelloWorldService extends ServiceMBeanSupport implements HelloWorldServiceMBean {
- private String message;
- public String getMessage() {
- System.out.println("getMessage()=" + message);
- return message;
- }
- public void setMessage(String message) {
- System.out.println("setMessage(" + message + ")");
- this.message = message;
- }
- }
3、配置文件jboss-service.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <server>
- <mbean code="example.mbean.HelloWorldService" name="www.chengang.com.cn:service=HelloWorld">
- <attribute name="Message">Hello World</attribute>
- </mbean>
- </server>
l name项是一个名称,格式一般是:[说明性文字]:service=[类名]
l attribute是为属性设置初始值,这样当JBOSS一加载HelloWorldService类时,message属性就有了一个初始值Hello World。注意Message的第一个字母必须是大写。
|----example
| |----mbean
| |----HelloWorldService.class (注意:是*.class,不是*.java)
| |----HelloWorldServiceMBean.class
|----META-INF
|----jboss-service.xml
l JBOSS支持热部署,也就是说你在布置这个目录时并不需要重启JBOSS。
后单击“service=HelloWorld”项打开详细页面
将“HelloWorld”改成“Hello World,ChenGang”,再单击“Apply Changes”应用修改
四、其他类如何使用Messag属性
现在我们可以通过一个自动提供的WEB页面来设置Message属性了,接下来的问题是:“在其他类中应该如何得到Message的属性值”。MBean在JBoss是只保留一个MBean的实例(单例模式?),也就是说问题转成我们如何去取得这个唯一实例。例程如下:
1、创建一个使用到Message属性的类
- import org.jboss.mx.util.MBeanProxyExt;
- import org.jboss.mx.util.ObjectNameFactory;
- public class Client {
- public void go() {
- HelloWorldServiceMBean mbean = (HelloWorldServiceMBean) MBeanProxyExt.create(HelloWorldServiceMBean.class, ObjectNameFactory.create(www.chengang.com.cn:service=HelloWorld));
- String msg = mbean.getMessage();
- System.out.println("Client.go()=" + msg);
- }
- }
注意:go方法里是三句。第一句比较长,它是根据jboss-service.xml文件中设置的MBean名称,来取得此MBean在JBOSS中的实例。
2、在Mbean中加一个相应的调用Client.go的方法
在HelloWorldServiceMBean接口中加入一句:
- void callGo();
- public void callGo() {
- new Client().go();
- }
3、更新布署
将三个类的class文件:Clien.class、HelloWorldServiceMBean.class、HelloWorldService.class,更新到JBOSS的hello.sar\example\mbean目录下。然后重启JBOSS。
4、查看效果
打开JBOSS提供的MBean设置页面,发现多了一个callGo。
单击callGo项后的invoke按钮,得到DOS输出
l 本实例的message属性是String类型的,但JMX也支持其他的类型,甚至是XML信息。对于jboss-service.xml中的XML信息,这时属性类型要求是org.w3c.dom.Element,JMX将它封装成了一个XML的DOM对象。
l 回顾一下,JMX也是将配置信息写在了一个文件(jboss-service.xml文件)里嘛,相对于将配置文件写到*.properties文件的方式,它似乎也没什么新鲜的地方。但通过本章实例我们可以看到JMX的一些好处:我们不用写代码去读配置文件的信息,而且JMX支持的属性类型是多种多样的(如上面说的org.w3c.dom.Element)。更重要的是JMX还提供了一整套的属性之前互相访问、互相调用的功能,这个HelloWorld实例所反映的只是冰山一角而已。
评论
jboss中我其他应用的MBean能不能注册到当前应用。
如:有个程序必须跑在另外一台机器上,提供message服务和有一个用户管理的frame程序。这台机器就叫server
而另外有一个机器用来跑webapp,这台就叫webserver.
客户端访问webapp时,在webapp上配置的mbean用来读取webserver的系统信息(用System.getProperties()取得).
server也有个mbean,用来提供它的系统信息。
注:webserver访问server上的服务时用rmi访问。
请问:这个server上的mbean能不能
注册到webapp上的那个mebeanserver上呢?
怎么注册呢?
发表评论
-
Lucene全文检索样例(解决大文本建索引)
2008-01-31 10:05 6476建索引:package com.pccw; i ... -
txt读取字符串(为实习生作的例子)
2008-01-29 18:27 1928try { FileInputStream fi = n ... -
关于Lucene索引合并解决方法
2008-01-28 10:21 9278由于Clustor的问题造成无法对索引进行同步,脑子中马上浮现 ... -
Spring 2.0 AOP 与事务配置
2007-11-20 16:13 2760Spring 2.0 AOP 与事务配置 ********* ... -
关于Soeckt 流操作的数据转换工具方法
2007-11-02 10:50 2178java 代码 package com ... -
Java socket开发实例入门
2007-08-21 16:08 12192socket用中文意思就是我 ... -
不使用webwork标签直接用Jsp取得Action中的值
2007-05-22 14:23 3057今天突然一个同事问我webwork如果不用标签只用JSP ... -
23种模式趣味解释
2007-05-22 10:36 1942创建型模式 1、FACTORY ... -
关于领域逻辑的三个主要模式
2007-05-13 22:36 2674事务脚本 事务脚本比较好理解,简单来说,就是将大多是事务,以过 ... -
又谈领域模型
2007-04-29 09:58 2222昨天,突然和阿敏谈起领域模型,发现自己的理解还是 ... -
简单Socket编程,来理解Socket
2007-02-27 09:34 2212Server端: java 代码 p ... -
[JMX一步步来] 8、编写程序来连接MBean
2007-02-02 13:18 5923前面用Html、jconsole等方法连接上了MBeanSer ... -
[JMX一步步来] 7、用JDK5.0的JConsole来连接MBean
2007-02-02 13:09 8612前面所有看效果都是通过Html网页来看的。JDK5.0自带了一 ... -
[JMX一步步来] 6、模型Bean:Model Bean
2007-02-02 13:06 5724在上一节是用apache的commons-modeler来开发 ... -
[JMX一步步来] 5、用Apache的commons-modeler来辅助开发JMX
2007-02-02 12:59 6960一、前言 每一个MBean都要有一个接口,比如前面的H ... -
[JMX一步步来] 4、动态MBean:DynamicMBean
2007-02-02 12:48 6479一、前言 动态MBean是在运行期才定义它的属性和方法 ... -
[JMX一步步来] 3、Notification的使用
2007-02-02 12:36 6194一、简介 Mbean之间的通信是必不可少的, ... -
[JMX一步步来] 2、JMX简介
2007-02-02 11:25 8772一、JMX简介 JMX是一 ... -
[JMX一步步来] 1、JMX的Hello World
2007-02-02 11:23 10109一、JMX简介 什么是JMX?在一篇网文中是这样说的: ... -
JAVA RMI 实例
2007-02-02 10:51 39285JAVA RMI 快速入门实例 本实例为参考多篇文章写就而成 ...
相关推荐
3. 基于JBoss来写MBean 3.1 HelloWorld实例 3.2 程序代码 3.3 配置文件jboss-service.xml 3.4 将实例部署到JBOSS 3.5 MBean的效果 s四.EJB3.0使用说明 1. Enterprice JavaBeans(EJB)的概念 1.1 会话 Bean: 1.2 ...
通过统一的图形化管理控制台,您可以管理和监控网络、操作系统、数据库等基础设施服务,也可以管理和监控Java虚拟机、JBoss Web、连接池等中间件,还可以通过自定义的JMX MBean管理和监控您的业务应用。通过对配置...
分析了当前网络监控中面临的主要问题,提出了采用JMX方案来解决的办法。介绍了JMX的技术特点,并采用该技术实现了IP网络管理中的网络监控任务的调配和管理。
通过一个小型Collector MBean和一个基于Perl的Nagios插件将JBoss集成到Nagios监视中。 使您可以阅读并非常有效地监视来自JBoss服务器的JMX值。 在Nagios服务器上,不需要JDK或JBoss安装。
自动化资源配置(例如,JBoss企业应用平台) 将定制JMX MBean集成到JON中该展示柜随附的资源旨在作为起点,并且将帮助您在自己的JBoss Operations Network环境中设置这些用例。屏幕截图-资源自动配置屏幕截图-定制...
JMX4Ant提供了与来自Ant的JMX MBean进行交互的能力。 支持几种流行的JMX实现和J2EE服务器,包括JBoss和BEA WebLogic Server。
2. The JBoss JMX Microkernel .............................................................................................................16 2.1. An Introduction to JMX ..................................
Jboss 服务通过底层 JBoss JMX 基础设施管理 hibernate3 统计 mBean 的发布。 ##Usage 服务将在 JMX 中以名称公开, com.hibernateinstrumentator:service=Instrumentator 和操作 listSessionFactories() // ...
提供了一个演示服务器(JBoss 6),以便您可以体验应用程序的运行。 (请注意,由于明显的原因,该服务器处于只读模式。)特征该应用程序支持以下功能: 安全通讯如果用户提供了用户名/密码凭据,则该应用程序将与...
核心Ellipsis组件以MBean的形式实现,它提供了基本的服务来执行代理并控制其生命周期。 核心组件之一是特殊的MBean(AgentModul),它使得可以加载由代理引擎提供动力的代理成为可能。 代理引擎可以执行一种类型的...