一个典型的JMS客户端由下面的几个基本步骤来创建:
创建一个到消息系统提供者的连接(Connection)
创建一个Session,用于接收和发送消息
创建MessageProducer和MessageConsumer来创建和接收消息
① 创建一个Connection
一个Connection提供客户端对底层的消息系统的访问。并实现资源的分配和管理。通过使用一个ConnectionFactory来创建一个Connection,通常用JDNI来指定:
Connection message=new initialContext();
TopicConnectionFactory topicConnectionFactory=(TopicConnectionFactory);
topic = (Topic) jndiContext.lookup(topicName);
topicConnection =topicConnectionFactory.createTopicConnection();
②创建一个Session
Session是一个比较大的JMS对象,他提供了生产和消费消息的手段。用于创建消息使用者和消息产生者。
topicSession = topicConnection.createTopicSession(false , Session.AUTO_ACKNOWLEDGE);
两个参数用于控制事务和消息确认。
③定位一个Topic
用JDNI来定位一个Topic,Topic用于识别发送或接收的消息,在发布/订阅系统中。订阅者订阅一个给定的Topic,而发布者将它发布的消息与一个Topic相连。
下面是创建一个Topic "WeatherReport"
Topic weatherTopic=messaging.lookup("WeatherReport");
④启动Connection
在上面的初始化步骤之后,消息流是禁止的,用于防止在初始化时发生不可预料的行为。一旦初始化结束,必须让Connection启动消息系统。
topicConnection.start();
⑤创建一个消息产生者
在发布/订阅里,一个产生者发布消息到一个指定的Topic。下面的代码显示创建一个产生者,以及后续的建立和发布一个简单文本消息。
TopicPublisher publisher=session.createPublisher(weatherTopic);
TexeMessage message=session.createMessage();
message.setText("ssss");
publisher.publish(message);
下面是一个消息使用者的代码
topicConnection =topicConnectionFactory.createTopicConnection();
topicSession = topicConnection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
topicSubscriber = topicSession.createSubscriber(topic);topicListener = new MsgListener();
topicSubscriber.setMessageListener(topicListener);topicConnection.start();
JMS开发步骤
最新推荐文章于 2021-04-24 18:41:15 发布