【问题标题】:Programmatically stopping MDB in JBoss 5.1.0GA在 JBoss 5.1.0GA 中以编程方式停止 MDB
【发布时间】:2020-03-17 22:59:12
【问题描述】:

我正在尝试停止 JBoss 5.1.0 中的 MDB。

我的代码如下:

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)

非法参数异常。

【问题讨论】:

  • 嘿...谢谢您的回复...从那以后我已经修好了:)

标签: jms jboss5.x message-driven-bean


【解决方案1】:

显然我使用的代码不起作用。不知道为什么。在 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);

作为评论,我没有遇到您遇到的会话异常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-20
    • 1970-01-01
    • 2011-04-10
    • 2021-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多