Sending JMS message to queue on JBOSS without JNDI
miragpl May 30, 2012 5:05 AMHi,
I'm trying to send a message to queue running on Jboss without using JNDI lookup
private static ConnectionFactory createConnectionFactory(int port, String ipAddress)
{
Map<String, Object> connectionParams = new HashMap<String, Object>();
connectionParams.put(TransportConstants.PORT_PROP_NAME, port);
connectionParams.put(TransportConstants.HOST_PROP_NAME, ipAddress);
TransportConfiguration transportConfiguration = new TransportConfiguration(
NettyConnectorFactory.class.getName(), connectionParams);
ConnectionFactory cf = (ConnectionFactory) HornetQJMSClient
.createConnectionFactoryWithoutHA(JMSFactoryType.CF, transportConfiguration);
return cf;
}
public static void sendNoJNDI(int port)
{
try
{
ConnectionFactory cf = createConnectionFactory(port, "127.0.0.1");
Connection connection = cf.createConnection();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Queue queue = HornetQJMSClient.createQueue("My_Queue");
MessageProducer producer = session.createProducer(queue);
ObjectMessage message = session.createObjectMessage();
message.setStringProperty("Source", "ALIVE");
message.setObject("String");
producer.send(message);
System.out.println("Worked with port: " + port);
}
catch (JMSException ex)
{
System.out.println("Failed with port " + port);
}
}
I use the above code ufortunately i got an exception in line:
Connection connection = cf.createConnection();
javax.jms.JMSException: Failed to create session factory
at org.hornetq.jms.client.HornetQConnectionFactory.createConnectionInternal(HornetQConnectionFactory.java:605)
at org.hornetq.jms.client.HornetQConnectionFactory.createConnection(HornetQConnectionFactory.java:119)
at org.hornetq.jms.client.HornetQConnectionFactory.createConnection(HornetQConnectionFactory.java:114)
at test.test.jms.SimpleJMSClient.sendNoJNDI(SimpleJMSClient.java:56)
at test.test.jms.SimpleJMSClient.main(SimpleJMSClient.java:132)
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:774)
The code works perfectly fine when i'm sending a message to HornetQ running in standalone mode.
Regards,
Marcin