Jms 在JBoss 5.1.0GA中以编程方式停止MDB
我试图阻止JBoss5.1.0中的MDB 我的代码如下:Jms 在JBoss 5.1.0GA中以编程方式停止MDB,jms,jboss5.x,message-driven-bean,Jms,Jboss5.x,Message Driven Bean,我试图阻止JBoss5.1.0中的MDB 我的代码如下: public static void stopAllMDB() throws InterruptedException, MalformedObjectNameException, NullPointerException { String currentVersion = "1.0"; for (String name : Util.MDB_NAMES) { S
public static void stopAllMDB()
throws InterruptedException, MalformedObjectNameException, NullPointerException {
String currentVersion = "1.0";
for (String name : Util.MDB_NAMES) {
String mbean = "jboss.j2ee:ear=myEar" + currentVersion + ".ear,jar=myJar.jar,name=myMDB,service=EJB3";
ObjectName objName = new ObjectName(mbean);
System.out.println("Stop MDB " + name);
try {
MBeanServer mbeanServer = MBeanServerLocator.locateJBoss();
MessagingDelegateWrapperMBean invoker = (MessagingDelegateWrapperMBean)MBeanProxy.get(MessagingDelegateWrapperMBean.class,
objName, mbeanServer);
invoker.stopDelivery();
}
} catch (Exception e) {
}
}
但如果在
MessagingDelegateWrapperMBean invoker = (MessagingDelegateWrapperMBean)MBeanProxy.get(MessagingDelegateWrapperMBean.class,objName, mbeanServer)
与
非法参数异常
显然,我使用的代码不起作用。不知道为什么。在JBoss 5.1.0 GA平台上,以下内容适用:
MBeanServer mbeanServer = MBeanServerLocator.locateJBoss();
String mbean = "jboss.j2ee:ear=myEar.ear,jar=all-ejbs.jar,name=" + name + ",service=EJB3";
ObjectName objectName = new ObjectName(mbean);
mbeanServer.invoke(objectName, "stopDelivery", new Object[] {}, null);
作为一句话,我没有遇到您遇到的会话异常。嘿。。。谢谢你的回复……从那以后我就把它修好了:)