2011-10-19 16 views
6

मैं जेएमडीआई को रिमोट हॉर्नैटक के बिना सीधे जेएमएस संसाधनों को तुरंत चालू करने की कोशिश कर रहा हूं।हॉर्नेटक्यू जेएमएसएक्सप्शन: सत्र फैक्ट्री बनाने में विफल

मैं ग्रहण आईडीई में अपना परीक्षण कोड चला रहा हूं। HornetQ 2.2.5 पुस्तकालयों का उपयोग करने के लिए मेरे क्लासपाथ को सेटअप करें।

लक्ष्य हॉर्नेटक संस्करण 2.1.2 है। अंतिम, मुझे लगा कि उन्हें पीछे की ओर संगत होना चाहिए, शायद गलत है?

ठीक है, इसलिए मैंने ऑनलाइन दस्तावेज़ीकरण पढ़ा है और जेएनडीआई का उपयोग किए बिना रिमोट जेएमएस सर्वर से कनेक्ट करने के उदाहरणों का पालन किया है। मैं निम्नलिखित अपवाद प्राप्त करता रहता हूं। मुझे यकीन नहीं है कि मैं क्या लापता हूं लेकिन मेरा मानना ​​है कि मेरे पास सबकुछ ठीक से सेटअप है। क्या कोई इस बात को इंगित कर सकता है कि मैं यहां क्या खो रहा हूं? अग्रिम में धन्यवाद।

JMSException: सत्र कारखाना बनाने के लिए

hornetq-configuration.xml पर कनेक्टर विफल है:

<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> 

मेरे टेस्ट कोड है: कनेक्शन कनेक्शन = शून्य;

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 

उत्तर

8

संगतता के बारे में मिलता है: हम 2.2.5+ जब तक ग्राहक अनुकूलता नहीं था। यदि आप 2.2.2 पर क्लाइंट को 2.2.5 और सर्वर पर आज़माते हैं, तो आपको शायद एक संस्करण मिस्चैच अपवाद मिलेगा।

हम हमेशा से 2.2.5+

संगत होना करने का लक्ष्य है और आप अपने config में कोई गलती है:

<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 को परिभाषित करने और के रूप में उपयोग कर सकते हैं:

"$ {MY_IP: 10.100.111.222}"

तो MY_IP रिक्त है, तो आप मिलेगा 10.100.111.222

लेकिन "$ { 10.100.111.222} "इसका मतलब कुछ भी नहीं है।

+0

अगर आपके मुद्दे को हल करता है तो कृपया उत्तर स्वीकार करना न भूलें! :) मैं "एसओएफ पर अंक एकत्र करने की कोशिश कर रहा हूं (केवल मज़े के लिए :)) –

+0

मैंने आपके उदाहरण के बाद अपनी वाक्यविन्यास त्रुटि को सही किया है और boot.log में यह सही ढंग से बांधता है। लेकिन मुझे अभी भी एक ही त्रुटि मिल रही है संदेश। चूंकि ग्राहक 2.2.5 का उपयोग कर रहा है, इसलिए संगतता कोई समस्या नहीं होनी चाहिए, है ना? – Byron

+0

आप कॉन्फ़िगरेशन –

संबंधित मुद्दे