JBoss Messagingのサーバが実行されているかを確認するために、jboss-messaging-1.4.5.GAに付属しているサンプルを実行してみましょう。
1:C:\jboss-4.2.3.GA\bin\run.batを実行しサーバを立ち上げる
2:先ほどの2.と同様に、C:\jboss-messaging-1.4.5.GA\examples\queue\build.xmlを実行
3:「SUCCESS!」となれば、成功
以上で、サンプルを実行する環境が整いました。
今度は、実際に動作させる簡単なサンプルを作成してみましょう。
package sample; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.JMSException; import javax.jms.MessageConsumer; import javax.jms.Queue; import javax.jms.Session; import javax.jms.TextMessage; import javax.naming.Context; import javax.naming.InitialContext; /** * testQueueトピックからテキストメッセージを受信する */ public class SampleReceiver { public static void main(String[] args) { Context context = null; Connection conn = null; try { // JNDIイニシャルコンテキストを取得します。 context = new InitialContext(); // 接続ファクトリを取得します。 ConnectionFactory connectionFactory = (ConnectionFactory) context.lookup("ConnectionFactory"); // 接続を作成します。 conn = connectionFactory.createConnection(); // 宛先をルックアップします。 Queue queue = (Queue) context.lookup("/queue/testQueue"); // セッションを作成します。 Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE); // メッセージ受信 MessageConsumer msgConsumer = session.createConsumer(queue); conn.start(); TextMessage msg = (TextMessage) msgConsumer.receive(); if (msg == null) { System.out.println("受信NG"); } else { System.out.println("受信OK: [" + msg.getText() + "]"); } System.out.println("受信終了"); } catch (Exception e) { e.printStackTrace(); } finally { if (context != null) { try { context.close(); } catch (Exception e) { e.printStackTrace(); } } try { if (conn != null) { conn.close(); } } catch (JMSException e) { e.printStackTrace(); } } } }
package sample; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.JMSException; import javax.jms.MessageProducer; import javax.jms.Queue; import javax.jms.Session; import javax.naming.Context; import javax.naming.InitialContext; /** * testQueueトピックへテキストメッセージを送信する */ public class SampleSender { public static void main(String[] args) { Context context = null; Connection conn = null; try { // JNDIイニシャルコンテキストを取得します。 context = new InitialContext(); // 接続ファクトリを取得します。 ConnectionFactory connectionFactory = (ConnectionFactory) context.lookup("ConnectionFactory"); // 接続を作成します。 conn = connectionFactory.createConnection(); // 宛先をルックアップします。 Queue queue = (Queue) context.lookup("/queue/testQueue"); // セッションを作成します。 Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE); // メッセージ送信 MessageProducer msgProducer = session.createProducer(queue); msgProducer.send(session.createTextMessage("Hello World!!!")); System.out.println(queue.getQueueName() + ":送信完了"); } catch (Exception e) { e.printStackTrace(); finally { if (context != null) { try { context.close(); } catch (Exception e) { e.printStackTrace(); } } try { if (conn != null) { conn.close(); } } catch (JMSException e) { e.printStackTrace(); } } } }
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory java.naming.provider.url=jnp://localhost:1099 java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
次ページでは、先ほどの図5と照らし合わせてソースコードを説明します。さらに、JBoss Messagingのメッセージングをサンプルで体感してみましょう。
Copyright © ITmedia, Inc. All Rights Reserved.