我正在尝试运行HornetQ 2.14最终用户手册中提供的示例之一。 下面是我正在Servlet中执行的Java代码(客户端和服务器都在同一个VM中)。

    TransportConfiguration transportConfiguration = new TransportConfiguration(InVMConnectorFactory.class.getName());

    ServerLocator locator = HornetQClient.createServerLocatorWithoutHA(transportConfiguration);

    ClientSessionFactory factory = locator.createSessionFactory(); //Causing error

[用于创建ClientSessionFactory的Java代码]

以下是standalone-full.xml中的配置...

<acceptors>
   <netty-acceptor name="netty" socket-binding="messaging"/>

   <netty-acceptor name="netty-throughput" socket-binding="messaging-throughput">
    <param key="batch-delay" value="50"/>
    <param key="direct-deliver" value="false"/>
    </netty-acceptor>

   <in-vm-acceptor name="in-vm" server-id="0"/>
</acceptors>

[Standalone-full.xml]

不幸的是locator.createSessionFactory()引发以下异常 -

WARN [org.hornetq.jms.server.recovery.HornetQXAResourceWrapper](定期恢复)在恢复时无法连接到任何hornetq服务器[XARecoveryConfig [hornetQConnectionFactory = HornetQConnectionFactory [serverLocator = ServerLocatorImpl [initialConnectors = [org-hornetq-core-remoting] impl-invm-InVMConnectorFactory?server-id = 0],discoveryGroupConfiguration = null],clientID = null,dupsOKBatchSize = 1048576,transactionBatchSize = 1048576,readOnly = false],username = null,password = null]]

错误[stderr](http--127.0.0.1-8080-1)HornetQException [errorCode = 2 message =无法连接到服务器。 尝试使用所有可用的服务器。]

org.hornetq.core.client.impl.ServerLocatorImpl.createSessionFactory(ServerLocatorImpl.java:774)上的错误[stderr](http--127.0.0.1-8080-1)

在test.jms.JMSReceiver.receive1(JMSReceiver.java:150)时发生错误[stderr](http--127.0.0.1-8080-1)

在test.jms.JMSReceiver.doGet(JMSReceiver.java:48)时出错[stderr](http--127.0.0.1-8080-1)

javax.servlet.http.HttpServlet.service(HttpServlet.java:734)上的错误[stderr](http--127.0.0.1-8080-1)

javax.servlet.http.HttpServlet.service(HttpServlet.java:847)上的错误[stderr](http--127.0.0.1-8080-1)....续

不知道这有多重要,但是在调试源代码时我发现

  public class InVMConnector implements Connector
  {
       public static final Logger log = Logger.getLogger(InVMConnector.class);

   public InVMConnector(final Map<String, Object> configuration,
                    final BufferHandler handler,
                    final ConnectionLifeCycleListener listener,
                    final Executor closeExecutor,
                    final Executor threadPool)
      {
         this.listener = listener;

        id =    ConfigurationHelper.getIntProperty(TransportConstants.SERVER_ID_PROP_NAME, 0, configuration);
  //Value of id = 0 in my case
        this.handler = handler;

        this.closeExecutor = closeExecutor;

         executorFactory = new OrderedExecutorFactory(threadPool);

         InVMRegistry registry = InVMRegistry.instance;

         acceptor = registry.getAcceptor(id);
     //acceptor is null here for me
       }

    }

[摘自Hornetq的源代码-2.14最终版]

因为对我来说acceptor = Registry.getAcceptor(id)为null,所以根本不尝试与服务器建立连接。

如果我缺少接收器的任何配置,可以让我知道吗?

预先感谢您的所有帮助。

关于,-ak

  ask by Ankur translate from so

本文未有回复,本站智能推荐:

1回复

如何使用注释获取hornetq connetionfactory对象

我的hornetq在独立模式下运行。我需要使用批注的connectionfactory对象。 没有注释,我的代码是这样的。 在这里,我可以获取连接对象。 使用注释,我的代码是这样的。 在这里,我将connectionfactory对象设置为null。 (注释无法
1回复

HornetQ使用JCA与Glassfish集成

如何使用JCA将hornetq与glassfish集成? 谢谢。
1回复

将LDAP与HornetQ一起使用

HornetQs的默认SecurityManager(HornetQSecurityManagerImpl)将检查hornetq-users.xml中存储的用户/角色。 我想使用LDAP验证用户身份; 我有两种方法: 使用Jass,并将其与LDAP一起用于验证用户。 手动实
1回复

HornetQ没有在Ubuntu上使用AIO

我已经在ubuntu上安装了libaio,并通过编程配置运行了嵌入式HornetQ,我这样做是为了在日记本上使用AIO,但是我看到在启动时,它并没有获得AIO,而是始终使用NIO。 有什么方法可以确定为什么会失败吗?
1回复

使用JBOSS / HornetQ的HornetQDestination上的InstantiationError

当尝试连接到远程JBOSS + HornetQ时,我们收到了该主题中的错误。 我们可以毫无问题地连接到另一台机器上的远程HornetQ。 我们正在使用HermesJMS尝试建立到JBOSS服务器的JNDI连接,并且能够创建JNDI上下文,但不能附加到任何主题/队列/等。 我们正在使
2回复

使用HornetQ运行JMS Bridge

我在同一台计算机上有两个独立的HornetQ服务器! 我按照HornetQ示例中的jms-bridge示例配置源服务器和目标服务器 (我将示例中的配置复制到我的服务器中)。 当我要运行目标服务器(包含jms桥)时,它找不到JMSBridge bean的TransactionManager属性
2回复

使用Spring配置集群Hornetq客户端

我正在尝试使用hornetq核心API和将是HA的spring来定义hornetq客户端。 但是,当我停止实时服务器,而备份服务器变为“实时”时,客户端将失败,并显示连接错误。 知道我在做什么错吗? 我定义了群集的独立hornetq服务器(没有组或发现)。 hornetq-confi
1回复

HornetQ重新连接尝试与DefaultMessageListenerContainer一起使用

我已经为jms侦听器配置了spring以如下方式使用hornetQ的消息。 当hornetq服务器启动并运行时,该代码可以正常工作。 但是,当我启动应用程序且未启动hornetq时, could not find queue in warn mode every 5seconds.
1回复

HornetQ:顺序使用分布式队列

对于当前项目,我正在尝试使用JBoss 7.1和HornetQ(JMS)设置以下场景,我认为这是一个相当普遍的用例:有三个应用程序服务器。 许多MDB应该每个处理一个冗长的计算过程的分解片段,任务应该分布在三个服务器之间。 当一个片段完成并准备好相应的结果时,应将结果发送到分布式队列,从那里
2回复

使用HornetQ核心桥的极低吞吐量

我们正在尝试使用HornetQ存储和转发机制......但是使用核心网桥将消息从一个独立的HornetQ实例转发到另一个实例非常慢。 我们无法将吞吐率提高到每秒200条以上。 令人惊讶的事实是,如果我们直接在目的地HornetQ实例指向同一客户端(即向转发HornetQ实例发布消息),我