JBoss MBean实现方法
JBoss下的MBean有几种实现方法
1,XX和XXMBean
public interface XXMBean
{...}
public class XX extends ServiceMBeanSupport implements XXMBean
{ ...}
在XX注册为MBean时,服务器会自动查找是否实现XXMBean接口,XX引出
的管理接口就是XXMBean接口
2,继承StandardMBean
public class XX extends StandardMBean implements SomeIntf
{ ...}
META-INF/jboss-service.xml中的配置项
<mbean code="实现类全名路径" name="xxx.xxx.xxx:service=xxxxMBean"/>
这样MBean就引出了SomeIntf管理接口,实现的接口不必遵循
XX+MBean的模式
3,任意的Java类,通过*-xmbean.xml文件来定义管理接口
public class XX extends ServiceMBeanSupport
{...}
jboss-service.xml配置项
<mbean code="XX" xmbean-dd="resource:xmdesc/XX-xmbean.xml">...</mbean>
XX-xmbean.xml内容
<mbean>
<description>Demo</description>
<descriptors>
<interceptors>
<interceptor code="test.MyInterceptor"/>
</interceptors>
</descriptors>
<class>XX</class>
//这个值设成什么都无所谓,XMBean在解析xml文件时调用的是
//public XMLMetaData(String mmbClassName, String resourceClassName, URL url)
//函数,已经传入了resourceClassName值,这个值就是jboss-service.xml中mbean的code
管理接口(属性、方法)的申明...
//在这里申明什么接口,系统就会引出什么接口,当然系统不会去校验的
</mbean>
三种方法中,最后一种最灵活,主要的是可以加入客户化的interceptor
一个例子如下:
package test;
import org.jboss.mx.interceptor.AbstractInterceptor;
import org.jboss.mx.interceptor.Interceptor;
import org.jboss.mx.server.Invocation;
public class MyInterceptor extends AbstractInterceptor {
public Object invoke(Invocation invocation) throws Throwable
{
log.info("Invocation: " + invocation);
AbstractInterceptor ic = invocation.nextInterceptor();
if( ic == null )
{
return invocation.dispatch();
}
else
{
long start = System.currentTimeMillis();
try{
return ic.invoke( invocation );
}catch(Exception e){
e.printStackTrace();
return null;
} //I can wrapp some exception
finally
{
log.info("call time : " + ( System.currentTimeMillis() - start ) );
}
}
}
}
这样就可以捕获MBean方法调用了,这个例子是显示MBean方法的调用时间
分享到:
相关推荐
Quartz jboss Mbean Config
在JBoss 2.x中,MBean(Managed Beans)与动态部署的J2EE组件交互存在困难,且MBean无法实现热部署。而在JBoss 3.x中,通过新的类装载架构,不仅实现了MBean的热部署,还使得整个服务器环境具备了动态部署的能力。类...
- **实现原理**:通过配置JBOSS的代理机制,使得Spring AOP可以在类加载时自动为指定的方法添加横切关注点。 - **应用场景**: - 监控方法调用的时间和参数。 - 实现事务管理。 - 日志记录。 ##### 2.4 Spring...
1. **修改JBOSS_HOME/server/default/deploy/jboss-service.xml** 文件:找到`<mbean code="org.jboss.deployment.scanner.URLDeploymentScanner"`节点,设置`scanIntervalSeconds`属性为一个合适的值(如10秒),...
1. MBean 服务器:作为 JBoss 的核心,管理和控制应用程序组件。 2. EJB 容器:处理 EJB 的生命周期管理和事务管理。 3. JNDI(Java Naming and Directory Interface):提供对象的命名和查找服务。 4. JMS(Java ...
在IT行业中,JBoss是一个非常著名的开源应用服务器,它基于Java EE规范,提供了一套全面的企业级服务。JMX(Java Management Extensions)是Java平台的一部分,用于管理应用程序、设备和服务。JMX允许开发者创建和...
### 一台机器部署多个JBoss服务器的配置方法 在企业级应用开发中,有时需要在同一台物理机器上部署多个JBoss应用服务器实例。这可能是出于性能测试、开发环境搭建或是资源利用等多种考虑因素。然而,在同一台机器上...
本文档旨在为开发者提供一个全面且深入的学习资源,帮助他们从零开始学习并掌握 JBoss 的使用方法。 #### 二、目标读者 本文档主要面向以下几类读者: - 对 Java 应用服务器感兴趣的初学者。 - 希望深入了解 JBoss ...
2010-06-15-JBoss-AS-Deploying-WARs-with-the-DeploymentFileRepository-MBean.pdf
- **JBoss MBean服务**:具体讨论了JBoss中使用的MBean服务,如SAR部署器MBean和服务生命周期接口。 通过上述内容的介绍,我们可以看出,《JBoss Admin Development Guide 3.26》是一本非常详尽的技术文档,不仅...
MBeanServer不仅要求MBean注册并赋予唯一标识,还提供了查询、读写属性、调用方法等操作接口,确保了系统的可扩展性和灵活性。此外,JMX代理还支持动态加载和卸载MBean,进一步提升了系统的伸缩性。 #### JBoss体系...
在JBoss AS6中使用Quartz,有两种主要的方法来实现定时任务,这两种方法都是基于Quartz框架的。下面将详细解释这两种方法。 **1. 第一种方法:定义MDB-Consumer(Message-Driven Bean)** 这种方法是首选的方式,...
JBoss 4.0.2利用JMX进行管理系统监控和管理,允许管理员通过MBean(Managed Bean)接口查看和操作服务器状态。 8. **服务集成** JBoss 4.0.2能够与多种数据库系统、LDAP服务器和其他企业服务无缝集成,提供强大的...
在实际应用中,根据不同的服务需求,JBoss需要配置多种类型的端口来实现特定功能。本文将基于提供的文件内容,详细介绍JBoss端口配置的相关知识点,帮助读者更好地理解和掌握JBoss端口配置的方法。 #### 二、端口...
这个架构允许类跨部署单元使用,解决了JBoss 2.x中MBean服务和动态部署的J2EE组件之间难以交互的问题,并且实现了MBean本身的热部署能力。 在新架构中,每个部署单元都有自己的类装载器,这样可以确保部署单元之间...
在本篇文章中,我们将深入探讨JBoss的基础知识,包括其核心概念、安装配置、管理工具以及常见问题的解决方法。 1. **JBoss核心概念** - **应用服务器**:JBoss作为应用服务器,为Java应用程序提供了运行环境,支持...
在`$JBOSS_HOME/server/default/deploy/jboss-service.xml`文件中,找到`MBean`部分,添加以下内容: ```xml <attribute name="DefaultDS">false <attribute name="Enabled">true <attribute name="JndiName">java:...
JMXKernel是JBoss 5中用于管理服务的MBean服务器。它通过JMX协议暴露了服务管理接口,使得可以通过远程管理工具监控和控制服务。 ##### 5.4 对象部署 在JBoss 5中,对象的部署变得更加灵活和高效。 - **5.4.1 ...