{"id":61,"date":"2006-07-14T21:51:06","date_gmt":"2006-07-14T20:51:06","guid":{"rendered":"http:\/\/blog.pczone.be\/?p=61"},"modified":"2006-07-19T16:22:48","modified_gmt":"2006-07-19T15:22:48","slug":"jboss-messaging","status":"publish","type":"post","link":"http:\/\/blog.pczone.be\/?p=61","title":{"rendered":"Jboss messaging"},"content":{"rendered":"<p>I had to give jboss messaging a go to. Hmm doesn&#8217;t look that difficult either. Now a simple MessageDrivenBean and I&#8217;m in business.<\/p>\n<p>The Sender:<\/p>\n<pre>\r\nimport java.util.Properties;\r\n\r\nimport javax.jms.Queue;\r\nimport javax.jms.QueueConnection;\r\nimport javax.jms.QueueConnectionFactory;\r\nimport javax.jms.QueueSender;\r\nimport javax.jms.QueueSession;\r\nimport javax.jms.Session;\r\nimport javax.jms.TextMessage;\r\nimport javax.naming.Context;\r\nimport javax.naming.InitialContext;\r\n\r\npublic class JbossJmsTest\r\n{\r\n\r\n   public static void main(String[] args) throws Exception\r\n   {\r\n      log.info(\"Creating jndi context - alternatively use a jndi.properties\");\r\n      Properties properties = new Properties();\r\n      properties.put(Context.INITIAL_CONTEXT_FACTORY, \"org.jnp.interfaces.NamingContextFactory\");\r\n      properties.put(Context.URL_PKG_PREFIXES, \"org.jnp.interfaces\");\r\n      properties.put(Context.PROVIDER_URL, \"localhost\");\r\n      InitialContext ctx = new InitialContext(properties);\r\n\r\n      log.info(\"Looking up queue\");\r\n      Queue queue = (Queue) ctx.lookup(\"queue\/testQueue\");\r\n\r\n      log.info(\"Looking up connection factory\");\r\n      QueueConnectionFactory qcf = (QueueConnectionFactory) ctx.lookup(\"UIL2ConnectionFactory\");\r\n\r\n      log.info(\"Creating connection\");\r\n      QueueConnection qc = qcf.createQueueConnection();\r\n      try\r\n      {\r\n         log.info(\"Creating session\");\r\n         QueueSession qs = qc.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);\r\n         \r\n         log.info(\"Creating sender\");\r\n         QueueSender sender = qs.createSender(queue);\r\n\r\n         log.info(\"Creating message\");\r\n         TextMessage message = qs.createTextMessage(\"hello\");\r\n\r\n         log.info(\"Sending message\");\r\n         sender.send(message);\r\n      }\r\n      finally\r\n      {\r\n         qc.close();\r\n      }\r\n   }\r\n\r\n   public static class log\r\n   {\r\n      public static void info(String message)\r\n      {\r\n         System.out.println(message);\r\n      }\r\n      public static void error(String message, Throwable t)\r\n      {\r\n         System.err.println(message);\r\n         t.printStackTrace();\r\n      }\r\n   }\r\n}\r\n<\/pre>\n<p>The receiver<\/p>\n<pre>\r\nimport java.util.Properties;\r\n\r\nimport javax.jms.Message;\r\nimport javax.jms.Queue;\r\nimport javax.jms.QueueConnection;\r\nimport javax.jms.QueueConnectionFactory;\r\nimport javax.jms.QueueReceiver;\r\nimport javax.jms.QueueSender;\r\nimport javax.jms.QueueSession;\r\nimport javax.jms.Session;\r\nimport javax.jms.TextMessage;\r\nimport javax.naming.Context;\r\nimport javax.naming.InitialContext;\r\n\r\npublic class JbossJmsReceiver {\r\n\tpublic static void main(String[] args) throws Exception\r\n\t   {\r\n\t      log.info(\"Creating jndi context - alternatively use a jndi.properties\");\r\n\t      Properties properties = new Properties();\r\n\t      properties.put(Context.INITIAL_CONTEXT_FACTORY, \"org.jnp.interfaces.NamingContextFactory\");\r\n\t      properties.put(Context.URL_PKG_PREFIXES, \"org.jnp.interfaces\");\r\n\t      properties.put(Context.PROVIDER_URL, \"localhost\");\r\n\t      InitialContext ctx = new InitialContext(properties);\r\n\r\n\t      log.info(\"Looking up queue\");\r\n\t      Queue queue = (Queue) ctx.lookup(\"queue\/testQueue\");\r\n\r\n\t      log.info(\"Looking up connection factory\");\r\n\t      QueueConnectionFactory qcf = (QueueConnectionFactory) ctx.lookup(\"UIL2ConnectionFactory\");\r\n\r\n\t      log.info(\"Creating connection\");\r\n\t      QueueConnection qc = qcf.createQueueConnection();\r\n\t      try\r\n\t      {\r\n\t         log.info(\"Creating session\");\r\n\t         QueueSession qs = qc.createQueueSession(false, Session.DUPS_OK_ACKNOWLEDGE);\r\n\r\n\t         log.info(\"Creating receiver\");\r\n\t         QueueReceiver receiver = qs.createReceiver(queue);\r\n\r\n\t         log.info(\"Try to receive message, it will not work\");\r\n\t         while(true){\r\n\t\t    \t Message received = receiver.receiveNoWait();\r\n\t\t    \t \/*if (received != null)\r\n\t\t    \t\t throw new RuntimeException(\"Should not get a message if the connection is not started!\");*\/\r\n\t\t\r\n\t\t    \t \/\/log.info(\"You have to start the connection before receiving messages\");\r\n\t\t    \t qc.start();\r\n\t\t\r\n\t\t    \t \/\/log.info(\"This receive will work\");\r\n\t\t    \t received = receiver.receiveNoWait();\r\n\t\t    \t if(received!=null){\r\n\t\t    \t\t log.info(\"Got message: \" + received);\r\n\t\t    \t }\r\n\t         }\r\n\t      }\r\n\t      finally\r\n\t      {\r\n\t         qc.close();\r\n\t      }\r\n\t   }\r\n\r\n\t   public static class log\r\n\t   {\r\n\t      public static void info(String message)\r\n\t      {\r\n\t         System.out.println(message);\r\n\t      }\r\n\t      public static void error(String message, Throwable t)\r\n\t      {\r\n\t         System.err.println(message);\r\n\t         t.printStackTrace();\r\n\t      }\r\n\t   }\r\n}\r\n<\/pre>\n<p>this is almost <a href=\"http:\/\/wiki.jboss.org\/wiki\/Wiki.jsp?page=QueueExample\">the identic code of the jboss site<\/a> only problem is finding it. It seems jboss has changed the jms server. I&#8217;m using jboss-4.0.3SP1 and somewhere they have changed JbossMQ to JBossMessaging or something. I still have to get the details but first things first getting some code working \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I had to give jboss messaging a go to. Hmm doesn&#8217;t look that difficult either. Now a simple MessageDrivenBean and I&#8217;m in business. The Sender: import java.util.Properties; import javax.jms.Queue; import javax.jms.QueueConnection; import javax.jms.QueueConnectionFactory; import javax.jms.QueueSender; import javax.jms.QueueSession; import javax.jms.Session; import javax.jms.TextMessage; import javax.naming.Context; import javax.naming.InitialContext; public class JbossJmsTest { public static void main(String[] args) throws &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/blog.pczone.be\/?p=61\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Jboss messaging&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"enabled":false},"version":2}},"categories":[4],"tags":[],"class_list":["post-61","post","type-post","status-publish","format-standard","hentry","category-informatics"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p3U9nk-Z","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"http:\/\/blog.pczone.be\/index.php?rest_route=\/wp\/v2\/posts\/61","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.pczone.be\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.pczone.be\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.pczone.be\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.pczone.be\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=61"}],"version-history":[{"count":0,"href":"http:\/\/blog.pczone.be\/index.php?rest_route=\/wp\/v2\/posts\/61\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.pczone.be\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=61"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.pczone.be\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=61"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.pczone.be\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=61"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}