HornetQ JMSException:无法创建会话工厂 [英] HornetQ JMSException: Failed to create session factory

查看:98
本文介绍了HornetQ JMSException:无法创建会话工厂的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试直接实例化JMS资源,而不使用JNDI到远程HORNETQ.

I'm trying to Directly instantiating JMS Resources without using JNDI to a REMOTE HORNETQ.

我正在Eclipse IDE中运行测试代码.设置我的类路径以使用HornetQ 2.2.5库.

I am running my test code in Eclipse IDE. Setup my classpath to use the HornetQ 2.2.5 libraries.

目标HornetQ是2.1.2版,最终,我认为它们应该向后兼容,也许是我错了?

The target HornetQ is version 2.1.2.Final, I figured they should be backwards compatible, maybe im wrong?

好的,所以我已经阅读了在线文档,并遵循了不使用JNDI来连接到远程JMS服务器的示例.我继续收到以下异常.我不确定自己缺少什么,但我相信我的所有设置都正确.有人可以指出我在这里缺少什么吗?预先感谢.

Okay, so I have read the online documentation and followed the examples on connecting to a remote JMS server without using JNDI. I keep on getting the following exception. Im not sure what Im missing but I believe I have everything setup correctly. Could someone please point out what Im missing here? Thanks in advance.

JMSException:无法创建会话工厂

hornetq-configuration.xml上的连接器为:

The connector on hornetq-configuration.xml is:

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

接受者是:

  <acceptor name="netty">
     <factory-class>org.hornetq.core.remoting.impl.netty.NettyAcceptorFactory</factory-class>
      <param key="host"  value="${10.100.111.222}"/>
     <param key="port"  value="${hornetq.remoting.netty.port:5445}"/>
  </acceptor>

我的测试代码是: 连接connection = null;

My Test code is: Connection connection = null;

   try
   {
    Queue queue = HornetQJMSClient.createQueue("TESTQ");

    Map<String, Object> connectionParams = new HashMap<String, Object>();
    connectionParams.put(TransportConstants.PORT_PROP_NAME, 5445);
    connectionParams.put(TransportConstants.HOST_PROP_NAME, "10.100.111.222");        

    TransportConfiguration transportConfiguration = new TransportConfiguration(NettyConnectorFactory.class.getName(),
                                                                               connectionParams);
    ConnectionFactory factory = (ConnectionFactory) HornetQJMSClient.createConnectionFactoryWithoutHA(JMSFactoryType.CF, transportConfiguration);
    System.out.println("debug: " + factory.getClass());

    connection = factory.createConnection();

    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

    MessageProducer producer = session.createProducer(queue);

    TextMessage message = session.createTextMessage("This is a test message");
    System.out.println("Sent message: " + message.getText());

    producer.send(message);

   }
      finally
      {
         if (connection != null)
         {
            try {
                connection.close();
            } catch (JMSException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
         }
      }

我收到以下异常

SEVERE: Failed to create netty connection
java.net.SocketTimeoutException: connect timed out
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(Unknown Source)
    at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at org.jboss.netty.channel.socket.oio.OioClientSocketPipelineSink.connect(OioClientSocketPipelineSink.java:114)
    at org.jboss.netty.channel.socket.oio.OioClientSocketPipelineSink.eventSunk(OioClientSocketPipelineSink.java:74)
    at org.jboss.netty.channel.Channels.connect(Channels.java:541)
    at org.jboss.netty.channel.AbstractChannel.connect(AbstractChannel.java:218)
    at org.jboss.netty.bootstrap.ClientBootstrap.connect(ClientBootstrap.java:227)
    at org.jboss.netty.bootstrap.ClientBootstrap.connect(ClientBootstrap.java:188)
    at org.hornetq.core.remoting.impl.netty.NettyConnector.createConnection(NettyConnector.java:450)
    at org.hornetq.core.client.impl.ClientSessionFactoryImpl.getConnection(ClientSessionFactoryImpl.java:1016)
    at org.hornetq.core.client.impl.ClientSessionFactoryImpl.getConnectionWithRetry(ClientSessionFactoryImpl.java:897)
    at org.hornetq.core.client.impl.ClientSessionFactoryImpl.connect(ClientSessionFactoryImpl.java:212)
    at org.hornetq.core.client.impl.ServerLocatorImpl.createSessionFactory(ServerLocatorImpl.java:602)
    at org.hornetq.jms.client.HornetQConnectionFactory.createConnectionInternal(HornetQConnectionFactory.java:611)
    at org.hornetq.jms.client.HornetQConnectionFactory.createConnection(HornetQConnectionFactory.java:121)
    at org.hornetq.jms.client.HornetQConnectionFactory.createConnection(HornetQConnectionFactory.java:116)
    at com.ws.proto.ManualJMS.main(ManualJMS.java:39)
Oct 19, 2011 1:18:50 PM org.hornetq.core.logging.impl.JULLogDelegate warn
WARNING: Tried 1 times to connect. Now giving up on reconnecting it.
Exception in thread "main" javax.jms.JMSException: Failed to create session factory
    at org.hornetq.jms.client.HornetQConnectionFactory.createConnectionInternal(HornetQConnectionFactory.java:615)
    at org.hornetq.jms.client.HornetQConnectionFactory.createConnection(HornetQConnectionFactory.java:121)
    at org.hornetq.jms.client.HornetQConnectionFactory.createConnection(HornetQConnectionFactory.java:116)
    at com.ws.proto.ManualJMS.main(ManualJMS.java:39)
Caused by: HornetQException[errorCode=2 message=Cannot connect to server(s). Tried with all available servers.]
    at org.hornetq.core.client.impl.ServerLocatorImpl.createSessionFactory(ServerLocatorImpl.java:619)
    at org.hornetq.jms.client.HornetQConnectionFactory.createConnectionInternal(HornetQConnectionFactory.java:611)
    ... 3 more

推荐答案

关于兼容性:直到2.2.5+,我们才具有客户端兼容性.如果您在2.2.2上尝试客户端,而在2.2.5上尝试服务器,则可能会遇到版本不匹配异常.

Regarding compatibility: We didn't have client compatibility until 2.2.5+. If you try client on 2.2.2 and server at 2.2.5, you will probably get a version mismatch exception.

我们的目标是始终与2.2.5+兼容

We are aiming to always be compatible from 2.2.5+

您的配置中有错字:

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

我们对属性和默认值使用语法.例如,您可以定义一个变量MY_IP并将其用作:

We use a syntax for properties and default values. You could for instance define a variable MY_IP and use it as:

"$ {MY_IP:10.100.111.222}"

"${MY_IP:10.100.111.222}"

如果MY_IP为空,您将获得10.100.111.222

If MY_IP is null, you would get 10.100.111.222

但是"$ {10.100.111.222}"没有任何意义.

But "${10.100.111.222}" doesn't mean anything.

这篇关于HornetQ JMSException:无法创建会话工厂的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆