不能';无法启动JMS连接

不能';无法启动JMS连接,jms,activemq,Jms,Activemq,我无法启动JMS连接,该连接是使用ActiveMQConnectionFactory创建的。下面是我的代码: public static void main(String[] args) throws Exception { BrokerService broker = new BrokerService(); try { broker.setUseJmx(true); broker.addConnector("vm://localhost:61

我无法启动JMS连接,该连接是使用ActiveMQConnectionFactory创建的。下面是我的代码:

public static void main(String[] args) throws Exception {

    BrokerService broker = new BrokerService();
    try {
        broker.setUseJmx(true);
        broker.addConnector("vm://localhost:61616");
        broker.start();
        System.out.println("Broker started from EventManager  >>>");
    } catch (Exception e) {
        e.printStackTrace();
    }

    try {
        ProducerConsumer pc = ProducerConsumer.getInstance();
        pc.sendMessage("TESTQ", "Hello");
    } catch (Exception e) {
        e.printStackTrace();
    }
ProducerConsumer Java类:

   public static ProducerConsumer getInstance() throws Exception {
    if(produceConsume == null) {
        System.out.println(" synchronized Instanace created ");
        produceConsume = new ProducerConsumer();
    }
    return produceConsume;


private ProducerConsumer() throws Exception 
    {
        ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(this.url);
        try {
            this.connection = connectionFactory.createConnection();
            this.connection.start();
        } catch (JMSException jms) {
            throw new Exception("Exception when active MQ establishes connections....", jms);
        }
    }
代码在start()时被卡住了,通过线程转储,我可以看到下面的堆栈

全线程转储Java热点(TM)64位服务器VM(24.0-b28混合 模式):

“ActiveMQ任务-1”守护进程prio=10 tid=0x00007fbe3c414800 nid=0x3543 in Object.wait()[0x00007fbe2a715000]java.lang.Thread.State: java.lang.object.wait(本机)上的定时_等待(在对象监视器上) (方法) -正在org.apache.activemq.transport.FailoverTransport.doReconnect(FailoverTransport.java:954)等待(java.lang.Object) -在org.apache.activemq.transport.FailoverTransport.FailoverTransport$2.iterate(FailoverTransport.java:136)锁定(一个java.lang.Object) -在org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:127)处锁定(java.lang.Object) 在 org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:48) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 运行(Thread.java:722)

“ActiveMQConnection[ID:ayush-0791-50867-1412762440207-2:1]计划程序” 对象中的守护进程prio=10 tid=0x00007fbe3c413000 nid=0x3542.wait() [0x00007fbe2a816000]java.lang.Thread.State:正在等待(在对象上) 监视器)位于java.lang.Object.wait(本机方法) -在java.lang.Object上等待(java.util.TaskQueue)。在 mainLoop(Timer.java:526) -在java.util.TimerThread.run(Timer.java:505)处锁定(java.util.TaskQueue)

“ActiveMQ代理[localhost]调度程序”守护程序prio=10 对象中的tid=0x00007fbe3c3e0000 nid=0x3541。等待() [0x00007fbe2a917000]java.lang.Thread.State:定时_等待(打开 对象监视器),位于java.lang.object.wait(本机方法) -在java.util.TimerThread.mainLoop(Timer.java:552)等待(java.util.TaskQueue) -在java.util.TimerThread.run(Timer.java:505)处锁定(java.util.TaskQueue)

“ActiveMQ数据文件写入程序”守护程序prio=10 tid=0x00007fbe3c3d1800 对象中的nid=0x3540。等待()[0x00007fbe2aa18000]
java.lang.Thread.State:正在等待(在对象监视器上) java.lang.Object.wait(本机方法) -正在等待(org.apache.kahadb.journal.DataFileAppender$1) wait(Object.java:503)位于 org.apache.kahadb.journal.DataFileAppender.processQueue(DataFileAppender.java:312) -锁定(org.apache.kahadb.journal.DataFileAppender$1)在 org.apache.kahadb.journal.DataFileAppender$2.run(DataFileAppender.java:203)

“ActiveMQ日志检查点工作程序”守护程序prio=10 tid=0x00007fbe3c3cb000 nid=0x353f等待状态 [0x00007fbe2ab19000]java.lang.Thread.State:已计时\u等待 (sleep)位于java.lang.Thread.sleep(本机方法)位于 org.apache.activemq.store.kahadb.MessageDatabase$3.run(MessageDatabase.java:296)

“KahaDB调度程序”守护程序prio=10 tid=0x00007fbe3c3c1000 nid=0x353e in Object.wait()[0x00007fbe2b32b000]java.lang.Thread.State: java.lang.object.wait(本机)上的定时_等待(在对象监视器上) (方法) -在java.util.TimerThread.mainLoop(Timer.java:552)等待(java.util.TaskQueue) -在java.util.TimerThread.run(Timer.java:505)处锁定(java.util.TaskQueue)

“RMI RenewClean-[192.168.57.33:47976]”守护进程prio=10 Object.wait()中的tid=0x00007fbde0005800 nid=0x353c [0x00007fbe2ad1b000]java.lang.Thread.State:定时_等待(打开 对象监视器),位于java.lang.object.wait(本机方法) -正在等待(java.lang.ref.ReferenceQueue$Lock) remove(ReferenceQueue.java:135) -锁定(一个java.lang.ref.ReferenceQueue$Lock) sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(DGCClient.java:535) 运行(Thread.java:722)

“RMI计划程序(0)”守护程序prio=10 tid=0x00007fbdf0024800 nid=0x353b 等待条件[0x00007fbe2ae1c000]java.lang.Thread.State: sun.misc.Unsafe.park(本机方法)处的定时等待(停车) -停车等待(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) 在 java.util.concurrent.locks.LockSupport.parknos(LockSupport.java:226) 在 AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2082) 在 java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1090) 在 java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:807) 在 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1043) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1103) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 运行(Thread.java:722)

“GC守护程序”守护程序prio=10 tid=0x00007fbdf0006800 nid=0x3539 in Object.wait()[0x00007fbe2b028000]java.lang.Thread.State: java.lang.object.wait(本机)上的定时_等待(在对象监视器上) (方法) -在sun.misc.GC$Daemon.run(GC.java:117)等待(sun.misc.GC$LatencyLock) -锁定(一个sun.misc.GC$LatencyLock)

“RMI收割机”prio=10 tid=0x00007fbdf0004800 nid=0x3538英寸 Object.wait()[0x00007fbe2b129000]java.lang.Thread.State:正在等待 (在对象监视器上)位于java.lang.object.wait(本机方法) -正在等待(java.lang.ref.ReferenceQueue$Lock) remove(ReferenceQueue.java:135) -在java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)处锁定(java.lang.ref.ReferenceQueue$Lock) sun.rmi.tra
broker.addConnector("tcp://localhost:61616");