HornetQ - исключение ConnectionFactory, когда сервер и очередь JMS размещаются удаленно - PullRequest
1 голос
/ 24 декабря 2011

Я пытаюсь запустить пример кода очереди, который входит в окончательный выпуск HornetQ 2.2.5.Путь $ INSTALL_ROOT / examples / jms / queue.

Этот пример отлично работает, когда я запускаю все на локальном хосте.Но когда я изменяю конфигурацию так, чтобы JMS-сервер находился на удаленном хосте, я получаю сообщение об ошибке сеанса от HornetQConnectionFactory.Клиент находит службу JNDI на удаленном хосте, но не удается, когда он пытается установить соединение JMS.Ниже приведен стек ошибок.

$ ./build.sh runRemote
...
runExample:
     [java] serverProps = -XX:+UseParallelGC -Xms256M -Xmx256M -XX:+AggressiveOpts
            -XX:+UseFastAccessorMethods -Dcom.sun.management.jmxremot   
         -Djava.util.logging.config.file=/ecm/packages/hornetq-2.2.5.Final/examples/common/config
         /logging.properties
         -Djava.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
          -Djava.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces 
     [java] Dec 22, 2011 5:54:42 PM org.hornetq.common.example.HornetQExample run
     [java] INFO: hornetq.example.runServer is false
     [java] Dec 22, 2011 5:54:42 PM org.hornetq.common.example.HornetQExample getContext
     [java] INFO: using server0/client-jndi.properties for jndi
     [java] Dec 22, 2011 5:54:43 PM org.hornetq.core.logging.impl.JULLogDelegate warn
     [java] WARNING: Tried 1 times to connect. Now giving up on reconnecting it.
     [java] javax.jms.JMSException: Failed to create session factory
     [java]     at org.hornetq.jms.client.HornetQConnectionFactory.createConnectionInternal(HornetQConnectionFactory.java:615)
     [java]     at org.hornetq.jms.client.HornetQConnectionFactory.createConnection(HornetQConnectionFactory.java:121)
     [java]     at org.hornetq.jms.client.HornetQConnectionFactory.createConnection(HornetQConnectionFactory.java:116)
     [java]     at org.hornetq.jms.example.QueueExample.runExample(QueueExample.java:55)
     [java]     at org.hornetq.common.example.HornetQExample.run(HornetQExample.java:76)
     [java]     at org.hornetq.jms.example.QueueExample.main(QueueExample.java:35)
     [java] Caused by: HornetQException[errorCode=2 message=Cannot connect to server(s). Tried with all available servers.]
     [java]     at org.hornetq.core.client.impl.ServerLocatorImpl.createSessionFactory(ServerLocatorImpl.java:619)
     [java]     at org.hornetq.jms.client.HornetQConnectionFactory.createConnectionInternal(HornetQConnectionFactory.java:611)
     [java]     ... 5 more
     [java] 
     [java] #####################
     [java] ###    FAILURE!   ###
     [java] #####################
     [java] Java Result: 1

Ниже приведен файл конфигурации hornetq-jms.xml, размещенный на удаленном сервере JMS.

<configuration xmlns="urn:hornetq"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="urn:hornetq /schema/hornetq-jms.xsd">
   <!--the connection factory used by the example-->
   <connection-factory name="ConnectionFactory">
      <connectors>
         <connector-ref connector-name="netty-connector"/>
      </connectors>
      <entries>
         <entry name="/ConnectionFactory"/>
      </entries>
   </connection-factory>

   <!--the queue used by the example-->
   <queue name="exampleQueue">
      <entry name="/queue/exampleQueue"/>
   </queue>
</configuration>

Ниже приведена конфигурация hornetqXML-файл конфигурации также на удаленном сервере JMS.

<configuration xmlns="urn:hornetq"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="urn:hornetq /schema/hornetq-configuration.xsd">

   <!-- Connectors -->

   <connectors>
      <connector name="netty-connector">
         <factory-class>org.hornetq.core.remoting.impl.netty.NettyConnectorFactory</factory-class>
         <param key="host"  value="${hornetq.remoting.netty.host:localhost}"/>
         <param key="port"  value="${hornetq.remoting.netty.port:5445}"/>
      </connector>
   </connectors>

   <!-- Acceptors -->
   <acceptors>
      <acceptor name="netty-acceptor">
         <factory-class>org.hornetq.core.remoting.impl.netty.NettyAcceptorFactory</factory-class>        
         <param key="host"  value="${hornetq.remoting.netty.host:0.0.0.0}"/>

      </acceptor>
   </acceptors>

   <!-- Other config -->

   <security-settings>
      <!--security for example queue-->
      <security-setting match="jms.queue.exampleQueue">
         <permission type="createDurableQueue" roles="guest"/>
         <permission type="deleteDurableQueue" roles="guest"/>
         <permission type="createNonDurableQueue" roles="guest"/>
         <permission type="deleteNonDurableQueue" roles="guest"/>
         <permission type="consume" roles="guest"/>
         <permission type="send" roles="guest"/>
      </security-setting>
   </security-settings>

</configuration>

Есть мысли, почему не работает Пример, когда я пытаюсь разместить очередь удаленно?

...