Deployment服务:JBossAS管理动态资源的利器
Deployment是JBossAS的一个实验性的服务,它采用Velocity的模板机制,能够实现动态创建永久性的JMS、JCA等资源的功能。
(一) Deployment服务的安装
1. DeploymentService是JBoss中的一个小不点,隐藏在JBoss中的/docs/examples/varia目录下。
2. 它的安装非常简单,使用的是ant脚本,运行命令ant install,DeploymentService被安装到default配置中deployment-service.sar目录下,模板文件被安装到default配置中的conf/templates下;
3. 启动JBoss服务器,打开JMX-Console就可以在JBoss域下找到service=DeploymentService节点,安装完成。
(二) Deployment服务的配置
Deployment服务本身是一个MBean,它主要通过Deployment服务中的META-INF/jboss-service.xml文件配置,主要的属性如下:
1. TemplateDir:指向部署模板的目录,缺省为./conf/templates;
2. UndeployDir:指向正在动态生成的部署模块目录,缺省为./undeploy;
3. DeployDir:指向已经动态生成的部署模块目录,缺省为./deploy;
(三) Deployment服务的应用
1. 动态添加JMS Queue
MBeanServer server = MBeanServerLocator.locateJBoss();
ObjectName objectName = null;
objectName = new ObjectName(”jboss:service=DeploymentService”);DeploymentServiceMBean dservice = (DeploymentServiceMBean) MBeanServerInvocationHandler
.newProxyInstance(server, objectName,
DeploymentServiceMBean.class, false);
HashMap properties = new HashMap();
properties.put(”QueueName”, “jbossweekQueue”);String module = dservice.createModule(”jbossweek”, “jms-queue”,
properties);
dservice.deployModuleAsynch(module);
2. 动态删除JMS Queue
MBeanServer server = MBeanServerLocator.locateJBoss();
ObjectName objectName = null;
objectName = new ObjectName(”jboss:service=DeploymentService”);DeploymentServiceMBean dservice = (DeploymentServiceMBean) MBeanServerInvocationHandler
.newProxyInstance(server, objectName,
DeploymentServiceMBean.class, false);
dservice.undeployModuleAsynch(”jbossweek-service.xml”);
dservice.removeModule(”jbossweek-service.xml”);
(四) 后记
现在的Deployment服务还不完善,许多功能仍待完善和改进,但是它提供了一个在JBoss平台上管理动态资源的思路,例如:您可以在此基础上对Deployment服务进行扩展,将JBoss平台改造成一个支持SaaS的技术支撑平台。





