JMS pub/sub Test Program 작성
HelloWorldJmsPublisher.java
import javax.naming.*; import javax.jms.*; import java.util.Properties; public class HelloWorldJmsPublisher { public final static String JMS_FACTORY="TopicConnectionFactory"; public final static String TOPIC="ExampleTopic"; public static void main(String[] args) { try { TopicConnectionFactory topicConnectionFactory; TopicConnection topicConnection; TopicSession topicSession; TopicPublisher topicPublisher; Topic topic; TextMessage msg; // JNDI InitialContext를 작성합니다 Properties env = new Properties(); env.setProperty(Context.INITIAL_CONTEXT_FACTORY, "jeus.jndi.JEUSContextFactory"); env.setProperty(Context.PROVIDER_URL, "localhost"); InitialContext ctx = new InitialContext(env); // Connection Factory와 Topic를 Look up 합니다 topicConnectionFactory = (TopicConnectionFactory) ctx.lookup(JMS_FACTORY); topic = (Topic) ctx.lookup(TOPIC); // connection를 작성 topicConnection = topicConnectionFactory.createTopicConnection(); // 세션을 작성 topicSession = topicConnection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE); // 토픽 발행자를 작성 topicPublisher = topicSession.createPublisher(topic); // 메세지를 작성 msg = topicSession.createTextMessage(); msg.setText("Hell World hurukku Topic JMS"); // 메세지를 송신 topicPublisher.publish(msg); // 접속을 닫습니다 topicPublisher.close(); topicSession.close(); topicConnection.close(); } catch (Exception e) { e.printStackTrace(); } } } |
HelloWorldJmsSubscriber.java
import javax.naming.*; import javax.jms.*; import java.util.Properties; public class HelloWorldJmsSubscriber { public final static String JMS_FACTORY="TopicConnectionFactory"; public final static String TOPIC="ExampleTopic"; public static void main(String[] args) { try { TopicConnectionFactory topicConnectionFactory; TopicConnection topicConnection; TopicSession topicSession; TopicSubscriber topicSubscriber; Topic topic; TextMessage msg; // JNDI InitialContext를 작성합니다 Properties env = new Properties(); env.setProperty(Context.INITIAL_CONTEXT_FACTORY, "jeus.jndi.JEUSContextFactory"); env.setProperty(Context.PROVIDER_URL, "localhost"); InitialContext ctx = new InitialContext(env); // Connection Factory와 Topic를 Look up 합니다 topicConnectionFactory = (TopicConnectionFactory) ctx.lookup(JMS_FACTORY); topic = (Topic) ctx.lookup(TOPIC); // connection를 작성 topicConnection = topicConnectionFactory.createTopicConnection(); // 세션을 작성 topicSession = topicConnection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE); // 트픽크사브스크라이바를 작성 topicSubscriber = topicSession.createSubscriber(topic); // 메세지의 배송을 스타트 topicConnection.start(); // 메세지의 수신 msg = (TextMessage) topicSubscriber.receive(); System.out.println(msg.getText()); // 접속을 닫습니다 topicSubscriber.close(); topicSession.close(); topicConnection.close(); } catch ( Exception e ) { e.printStackTrace(); } } } |
Source Compile 및 실행
- Compile
“javac -classpath /home/craftlee/jeus/lib/system/jeus.jar *.java”
- Subscriber 실행
“java -classpath .:/home/craftlee/jeus/lib/system/jeus.jar:/home/craftlee/jeus/lib/system/jmxri.jar HelloWorldJmsSubscriber”
- Publisher 실행 (새로운 창으로 실행)
“java -classpath .:/home/craftlee/jeus/lib/system/jeus.jar:/home/craftlee/jeus/lib/system/jmxri.jar HelloWorldJmsPublisher”
'JAVA > JEE' 카테고리의 다른 글
[펌]메타데이터로 강화된 AOP의 개념과 구조 (0) | 2005.07.13 |
---|---|
[엠파스 펌][스크랩] Starting Java Messaging System - 5 (0) | 2005.06.03 |
[엠파스 펌][스크랩] Starting Java Messaging System - 3 (0) | 2005.06.03 |
[엠파스 펌][스크랩] Starting Java Messaging System - 2 (0) | 2005.06.03 |
[엠파스 펌][스크랩] Starting Java Messaging System - 1 (0) | 2005.06.03 |