Generic JMS Client with EAP/ActiveMQ: Difference between revisions
Jump to navigation
Jump to search
(4 intermediate revisions by the same user not shown) | |||
Line 12: | Line 12: | ||
The classes required by the remoting and ActiveMQ client-side logic are available in <tt>$JBOSS_HOME/bin/client/jboss-client.jar</tt> so an EAP7/ActiveMQ client typically includes that JAR on its classpath. | The classes required by the remoting and ActiveMQ client-side logic are available in <tt>$JBOSS_HOME/bin/client/jboss-client.jar</tt> so an EAP7/ActiveMQ client typically includes that JAR on its classpath. | ||
=Authentication= | |||
By default, ActiveMQ does not allow unauthenticated connections. A connection must be created for a specific user, providing appropriate credentials. The user must be added to the "ApplicationRealm", and it must have the "guest" role (it must be associated with the "guest" group when creating the user). That identity will be used to create JMS connections. | |||
For more details on using <tt>add-user.sh</tt>, see: | |||
<blockquote style="background-color: #f9f9f9; border: solid thin lightgrey;"> | |||
:<tt>[[add-user.sh]]</tt> | |||
</blockquote> | |||
=Essential Code= | |||
<pre> | |||
Properties p = new Properties(); | |||
p.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory"); | |||
p.put(Context.PROVIDER_URL, "http-remoting://localhost:8080"); | |||
InitialContext ic = new InitialContext(p); | |||
Destination destination = (Destination)ic.lookup("jms/queue/novaordis"); | |||
ConnectionFactory cf = (ConnectionFactory)ic.lookup("/jms/RemoteConnectionFactory"); | |||
Connection c = cf.createConnection("jmsuser", "jmspassword"); | |||
c.start(); | |||
Session s = c.createSession(false, Session.AUTO_ACKNOWLEDGE); | |||
MessageProducer producer = session.createProducer(destination); | |||
Message m = session.createTextMessage("something"); | |||
producer.send(m); | |||
c.close(); | |||
</pre> | |||
=Code= | =Code= | ||
{{External|https://github.com/NovaOrdis/playground/tree/master/jboss/activemq/simplest-activemq-jms-client}} | {{External|https://github.com/NovaOrdis/playground/tree/master/jboss/activemq/simplest-activemq-jms-client}} |
Latest revision as of 21:21, 7 February 2017
Internal
Overview
Also see:
Classpath
The classes required by the remoting and ActiveMQ client-side logic are available in $JBOSS_HOME/bin/client/jboss-client.jar so an EAP7/ActiveMQ client typically includes that JAR on its classpath.
Authentication
By default, ActiveMQ does not allow unauthenticated connections. A connection must be created for a specific user, providing appropriate credentials. The user must be added to the "ApplicationRealm", and it must have the "guest" role (it must be associated with the "guest" group when creating the user). That identity will be used to create JMS connections.
For more details on using add-user.sh, see:
Essential Code
Properties p = new Properties(); p.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory"); p.put(Context.PROVIDER_URL, "http-remoting://localhost:8080"); InitialContext ic = new InitialContext(p); Destination destination = (Destination)ic.lookup("jms/queue/novaordis"); ConnectionFactory cf = (ConnectionFactory)ic.lookup("/jms/RemoteConnectionFactory"); Connection c = cf.createConnection("jmsuser", "jmspassword"); c.start(); Session s = c.createSession(false, Session.AUTO_ACKNOWLEDGE); MessageProducer producer = session.createProducer(destination); Message m = session.createTextMessage("something"); producer.send(m); c.close();