JBossWeek的专栏

欢迎交流JBoss平台的开发和管理经验

原创 JBossTools实践系列:开发标准的JMX MBean服务收藏

新一篇: Seam 2.0.1 发布 | 旧一篇: Eclipse启动错误:与FlashGet冲突

作者:JBossWeek http://blog.csdn.net/JBossweek email:jbossweek AT gmail.com

版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息

(一) 环境准备

应用服务器:JBoss AS 4.2.2 GA

开发工具:JBossTools 2.0.0 GA

(二) 创建MBean项目

1、 新建一个普通的java项目,名称为Hello;

2、 选择“New->Other->JBossTools->MBean Components->MBean stubs”;

3、 在出现“New MBean Wizard”的“New MBean Interface”窗口中输入:

Package:demo

MBean Name:HelloWorld

选择“下一步”继续;

4、 在出现的“New MBean Class”窗口中输入:

Package:demo

MBean Name:HelloWorld

同时选择“create –service.xml file”选项,选择“下一步”继续;

5、 选择“META-INF”目录,将生成的“Hello-service.xml”文件重构为“jboss-service.xml”;

6、 Hello MBean项目的项目结构如下图所示:

Hello MBean Project Struture

 

(三) 编写MBean服务

这里编写的MBean服务是一个非常简单的输出“Hello”消息的MBean,

1、 接口代码如下:

package demo;

public interface HelloMBean {

public void start() throws Exception;

public void stop() throws Exception;

public void setMessage(String message);

public String getMessage();

public void sayHello();

}

2、 实现代码如下:

package demo;
public class Hello implements HelloMBean {
private String message = "Hello World";
public Hello() {
}
public String getMessage() {
return message;
}
public void sayHello() {
System.out.println(message);
}
public void setMessage(String message) {
this.message = message;
}
public void start() throws Exception {
System.out.println("Hello MBean is starting...");
}
public void stop() throws Exception {
System.out.println("Hello MBean is stoping...");
}
}

3、 修改jboss-service.xml文件如下:

<?xml version="1.0" encoding="UTF-8"?>

<server>

<mbean code="demo.Hello" name="jbossweek.demo:key=Hello">

       <attribute name="Message">Hello World!</attribute>

</mbean>

</server>

 

 

(四) MBean服务打包

1、 在JBossTools中选择“Window->Show View->Other”,在出现的窗口中选择“JBossTools->Project archives”,就会出现“Project archives”视图;

2、 在“Project archives”视图中选择“New Archive->JAR”,在出现的窗口中将“Archieve Name”修改为Hello.sar,同时选择“Exploded archive resulting in a folder (no compression)”;

3、 在 “Project archives”视图中选择刚创建的“Hello.sar”,右键单击在出现的上下文菜单中选择“New Fileset”,在出现的窗口中单击“Workspace…”按钮,在出现的窗口选择“Hello”项目的“bin”目录,在“includes”中输入“demo/”,选择“Finish”将MBean类加入到Hello.sar包。

4、 同理增加“META-INF/”的fileset将jboss-service.xml文件加入到Hello.sar包。

最终的“Project archives”视图如下图所示:

Project archives

 

最终的Hello.sar包结构如下图所示:

Hello.sar Struture

 

(五) 部署Hello MBean服务

1、 在JBossTools中选择“Window->Show View->Other”,在出现的窗口中选择“Server->JBoss Server View”,就会出现JBoss Server视图;

2、 选择配置一个配置好的JBoss Server,右键单击,在出现的上下文菜单中选择“Add or Remove Projects…”,在出现的窗口中将Hello.sar添加到“Configured Projects…”列表中;

(六) 验证

1、 在JBossTools中的JBoss Server视图中单击“启动”图标启动JBoss服务器,在启动过程中会出现如下日志:

[STDOUT] Hello MBean is starting...

2、 打开浏览器访问地址:http://localhost:8080/jmx-consoel,定位jbossweek.demo:key=Hello,单击进入

3、 修改Message属性为“Hello JBossWeek!”,单击“Apply Changes”;再单击sayHello方法就会在JBossTools的控制台中看到如下日志:

INFO [STDOUT] Hello JBossWeek!

4、 在JBossTools中的JBoss Server视图中单击“关闭”图标关闭JBoss服务器,在关闭过程中会出现如下日志:

[STDOUT] Hello MBean is stoping...

到此,标准的JMX MBean服务就开发完成了!

发表于 @ 2007年12月16日 21:13:00|评论(loading...)|编辑

新一篇: Seam 2.0.1 发布 | 旧一篇: Eclipse启动错误:与FlashGet冲突

评论

#jaytse 发表于2008-01-11 17:11:39  IP: 222.191.237.*
问题描述:
在JBoss中有2个不同的应用A,B,并想把A、B运行于不同的虚拟主机上且不同的端口。例如A访问端口为9999,B访问端口为8888,并且在B运行的虚拟主机上配置上SSL。

当前情况:
仅仅做到A、B运行于不同虚拟主机上,但是相同端口。因为A、B运行的虚拟机在一个Service中,共享相同Connector。

不想启动2个JVM上启动不同JBoss,不想一个JVM上启动2个JBoss实例,多谢多谢

求助:
如何实现描述的问题,多谢多谢!
发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © Richard Qin