我用的是ActiveMQ,用Topic topic = session.createTopic(topicName);
创建Topic。因为每次启动系统都会创建名字(topicName)不一样的Topic,后发现服务器上积攒了许多Topic,系统关闭后
并没有被注销掉。(服务器重新启动后Topic好像都没有了,不过显然不能去重启)/
有什么方法可以在代码里面删除指定Topic,不知道哪位高手遇到过类似的问题,还望不吝赐教~~! 比较急,谢谢了~!

解决方案 »

  1.   

    顶一下吧,
    不懂
    session删除后都会留着的阿
      

  2.   

    可以用Jboss的Invoke方法,我写了一个,你看看能不能用    private void deleteTopicInJboss(String topicName) throws Exception {
            Hashtable <String, String> jndi = new Hashtable <String, String>();
            jndi.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
            jndi.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
            jndi.put(Context.PROVIDER_URL, "localhost:1099");        Context context = new InitialContext(jndi);
            MBeanServerConnection server = (MBeanServerConnection) context.lookup("jmx/invoker/RMIAdaptor");
            server.invoke(new ObjectName("jboss.mq:service=DestinationManager"),
                          "destroyTopic",
                          new Object[] {"topic/" + topicName},
                          new String[] {"java.lang.String"});
        }