excellent movie here on how to use HermesJMS to connect to JBossMQ:
http://www.hermesjms.com/demos/jboss_config.html
in practice:
configuration
providers
add group name
call it "JBoss 4.0.1"
add jars:
jboss-client, jbossall-client, jbossmq-client, jmx-invoker-adaptor-client, jnp-client (they are in C:\acme\dev\jboss\jboss-4.0.3SP1\client)
concurrent, jboss-jmx
(they are in C:\acme\dev\jboss\jboss-4.0.3SP1\lib)
create initial context
loader=JBoss 4.0.1
providerURL=jnp://localhost:1099
initialContextfactory=org.jnp.interfaces.NamingContextFactory
urlPackagePrefixes=org.jnp.interfaces:org.jboss.naming
securityCredentials=admin
securityAuthentication=admin
here more info on which parameters to use to create a connection:
http://oatv.com/pub/a/onjava/2006/02/22/asynchronous-messaging-with-spring-jms.html?page=3
and at page 5 some Java code on how to send messages to JBossMQ
For convenience, here is the working code:
private void sendJMS() {
try {
String JNDINAME = "queue/testQueue";
String queueName = "queue/testQueue";
System.out.println("Queue name is " + queueName);
InitialContext jndiContext = null;
/*
* Create JNDI Initial Context
*/
try {
Hashtable env = new Hashtable();
env.put("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
env.put("java.naming.provider.url","localhost");
env.put("java.naming.factory.url.pkgs",
"org.jnp.interfaces:org.jboss.naming");
jndiContext = new InitialContext(env);
} catch (NamingException e) {
System.out.println("Could not create JNDI API " +
"context: " + e.toString());
}
QueueConnectionFactory queueConnectionFactory = null;
Queue queue = null;
/*
* Get queue connection factory and queue objects from JNDI context.
*/
try {
queueConnectionFactory = (QueueConnectionFactory)
jndiContext.lookup("UIL2ConnectionFactory");
queue = (Queue) jndiContext.lookup(queueName);
} catch (NamingException e) {
System.out.println("JNDI API lookup failed: " + e.toString());
}
QueueConnection queueConnection = null;
/*
* Create connection, session, sender objects.
* Send the message.
* Cleanup JMS connection.
*/
try {
queueConnection =
queueConnectionFactory.createQueueConnection();
QueueSession queueSession = queueConnection.createQueueSession(false,
Session.AUTO_ACKNOWLEDGE);
QueueSender queueSender = queueSession.createSender(queue);
TextMessage message = queueSession.createTextMessage();
message.setText("This is a sample JMS message.");
System.out.println("Sending message: " + message.getText());
queueSender.send(message);
} catch (JMSException e) {
logger.error("Exception occurred: ", e);
} finally {
if (queueConnection != null) {
try {
queueConnection.close();
} catch (JMSException e) {
logger.error("unable to close queueConnection", e);
}
}
}
}
catch (Exception e) {
logger.error("unable to send JMS", e);
}
}
No comments:
Post a Comment