JMS是一个由AS提供的Message服务。它能接受消息产生者(Message Provider)所发出的消息,并把消息转发给消息消费者(Message Consumer)。
JMS的是一个由作为提供的信息服务。它能接受消息产生者(消息提供者)所发出的消息,并把消息转发给消息消费者(消息 消费者)。
2,JMS的提供2种类型的消息服务:(1)队列,即点对点,每个消息只转发给一个消息消费者使用转发。(2)题目,即发布和订阅,每个消息可以 给所有的订阅者(消费者)。
3时,WebLogic 8下的JMS的配置:
(1)配置JMS连接工厂
(2)配置JMS文件存储(目前所找到的文档都是配置文件存储,其实在具体的应用中,可能的JMS JDBC存储更广泛,但暂时没有找到资料)
(3)服务器配置的JMS
(4)在JMS服务器的目的地中配置JMS队列或者JMS主题
其中提供给消息产生者和消息消费者使用的是JMS连接工厂的JNDI和JMS队列的JMS主题的或者JNDI中。
4,消息产生者向JMS的发送消息的步骤:
(一)使用的JNDI查询对象的JMS ConnectionFactory和目的地(JMS队列/主题)
(2)使用管理对象的JMS ConnectionFactory建立连接连接
(3)使用连接会话连接建立会话
(4)使用会话会话和管理对象目的地创建消息生产者MessageSender
(5)使用消息生产者MessageSender发送消息
一个消息发送者的例子:
包myjms;
进口java.util中.*;
进口javax.naming中.*;
进口javax.jms .*;
公共类MessageProducter {
公共静态无效的主要(字串[] args){
弦乐queueConnectionFactoryName =“myjmsconnectionfactory”; / / JMS连接工厂的JNDI的
弦乐queueName =“myjmsqueue”; / / JMS队列或者JMS主题的的JNDI
布尔成交= 0; / /交易模式
诠释acknowledgementMode = Session.AUTO_ACKNOWLEDGE; / /确认模式
字符串消息=“邮件需要发送”; / /模拟需要发送的消息
属性属性=新的属性();
properties.put(Context.INITIAL_CONTEXT_FACTORY,“weblogic.jndi.WLInitialContextFactory”);
properties.put(Context.PROVIDER_URL,“T3的:/ /本地主机:7001”);
尝试{
语境上下文=新的InitialContext(属性);
对象obj = context.lookup(queueConnectionFactoryName);
QueueConnectionFactory的QueueConnectionFactory的=(QueueConnectionFactory的)obj的; / / JMS连接工厂的获得
obj的= context.lookup(queueName);
队列队列=(队列)obj的; / / JMS队列或者JMS主题的获得
QueueConnection queueConnection = queueConnectionFactory.createQueueConnection ();//产生连接
queueConnection.start();
QueueSession的QueueSession的= queueConnection.createQueueSession(成交,acknowledgementMode);
TextMessage中的TextMessage = queueSession.createTextMessage();
textMessage.clearBody();
textMessage.setText(消息);
QueueSender queueSender = queueSession.createSender(队列);
queueSender.send(文字信息);
如果(交易){
queueSession.commit();
}
如果(queueSender!=空){
queueSender.close();
}
如果(QueueSession的!=空){
queueSession.close();
}
如果(queueConnection!=空){
queueConnection.close();
}
}
赶上(例外前){
ex.printStackTrace();
}
}
}
5,消息消费者从JMS的接受消息的步骤:
(一)使用的JNDI查询对象的JMS ConnectionFactory和目的地(JMS队列/主题)
(2)使用管理对象的JMS ConnectionFactory建立连接连接
(3)使用连接会话连接建立会话
(4)使用会话会话和管理对象目的地创建消息消费者MessageReceiver
(5)使用消息消费者MessageReceiver接受消息,需要用setMessageListener将MessageListener的接口绑定到MessageReceiver
消息消费者必须实现了MessageListener的接口,需要定义的onMessage事件方法。
一个消息消费者的例子:
包myjms;
进口java.util中.*;
进口javax.naming中.*;
进口javax.jms .*;
公共类MessageReciever
实现MessageListener的{
公共无效的onMessage(献辞){
如果(消息的instanceof的TextMessage){
TextMessage中的TextMessage =(TextMessage中)消息;
尝试{
System.out.println(“消息内容是:”+ textMessage.getText());
}
赶上(JMSException的é){
e.printStackTrace();
}
}
}
公共静态无效的主要(字串[] args){
MessageReciever msgRcvr =新MessageReciever();
弦乐queueConnectionFactoryName =“myjmsconnectionfactory”;
弦乐queueName =“myjmsqueue”;
布尔成交= 0;
诠释acknowledgementMode = Session.AUTO_ACKNOWLEDGE;
属性属性=新的属性();
properties.put(Context.INITIAL_CONTEXT_FACTORY,
“weblogic.jndi.WLInitialContextFactory”);
properties.put(Context.PROVIDER_URL,“T3的:/ /本地主机:7001”);
尝试{
语境上下文=新的InitialContext(属性);
对象obj = context.lookup(queueConnectionFactoryName);
QueueConnectionFactory的QueueConnectionFactory的=(的QueueConnectionFactory)
obj的;
obj的= context.lookup(queueName);
队列队列=(队列)obj的;
QueueConnection queueConnection = QueueConnectionFactory的。
createQueueConnection();
queueConnection.start();
QueueSession的QueueSession的= queueConnection.createQueueSession(成交,
acknowledgementMode);
QueueReceiver queueReceiver = queueSession.createReceiver(队列);
queueReceiver.setMessageListener(msgRcvr);
同步(msgRcvr){
msgRcvr.wait(100000);
}
如果(queueReceiver!=空){
queueReceiver.close();
}
如果(QueueSession的!=空){
queueSession.close();
}
如果(queueConnection!=空){
queueConnection.close();
}
}
赶上(例外前){
ex.printStackTrace();
}
}
}
6,消息驱动Bean
MDB的实际上就是一个消息消费者的客户端程序。它作为EJB容器来管理由。在JBuilder中生成一个MDB的非常简单。
作品转自:http://www.360doc.com/content/06/1229/18/15934_312218.shtml
JMS的是一个由作为提供的信息服务。它能接受消息产生者(消息提供者)所发出的消息,并把消息转发给消息消费者(消息 消费者)。
2,JMS的提供2种类型的消息服务:(1)队列,即点对点,每个消息只转发给一个消息消费者使用转发。(2)题目,即发布和订阅,每个消息可以 给所有的订阅者(消费者)。
3时,WebLogic 8下的JMS的配置:
(1)配置JMS连接工厂
(2)配置JMS文件存储(目前所找到的文档都是配置文件存储,其实在具体的应用中,可能的JMS JDBC存储更广泛,但暂时没有找到资料)
(3)服务器配置的JMS
(4)在JMS服务器的目的地中配置JMS队列或者JMS主题
其中提供给消息产生者和消息消费者使用的是JMS连接工厂的JNDI和JMS队列的JMS主题的或者JNDI中。
4,消息产生者向JMS的发送消息的步骤:
(一)使用的JNDI查询对象的JMS ConnectionFactory和目的地(JMS队列/主题)
(2)使用管理对象的JMS ConnectionFactory建立连接连接
(3)使用连接会话连接建立会话
(4)使用会话会话和管理对象目的地创建消息生产者MessageSender
(5)使用消息生产者MessageSender发送消息
一个消息发送者的例子:
包myjms;
进口java.util中.*;
进口javax.naming中.*;
进口javax.jms .*;
公共类MessageProducter {
公共静态无效的主要(字串[] args){
弦乐queueConnectionFactoryName =“myjmsconnectionfactory”; / / JMS连接工厂的JNDI的
弦乐queueName =“myjmsqueue”; / / JMS队列或者JMS主题的的JNDI
布尔成交= 0; / /交易模式
诠释acknowledgementMode = Session.AUTO_ACKNOWLEDGE; / /确认模式
字符串消息=“邮件需要发送”; / /模拟需要发送的消息
属性属性=新的属性();
properties.put(Context.INITIAL_CONTEXT_FACTORY,“weblogic.jndi.WLInitialContextFactory”);
properties.put(Context.PROVIDER_URL,“T3的:/ /本地主机:7001”);
尝试{
语境上下文=新的InitialContext(属性);
对象obj = context.lookup(queueConnectionFactoryName);
QueueConnectionFactory的QueueConnectionFactory的=(QueueConnectionFactory的)obj的; / / JMS连接工厂的获得
obj的= context.lookup(queueName);
队列队列=(队列)obj的; / / JMS队列或者JMS主题的获得
QueueConnection queueConnection = queueConnectionFactory.createQueueConnection ();//产生连接
queueConnection.start();
QueueSession的QueueSession的= queueConnection.createQueueSession(成交,acknowledgementMode);
TextMessage中的TextMessage = queueSession.createTextMessage();
textMessage.clearBody();
textMessage.setText(消息);
QueueSender queueSender = queueSession.createSender(队列);
queueSender.send(文字信息);
如果(交易){
queueSession.commit();
}
如果(queueSender!=空){
queueSender.close();
}
如果(QueueSession的!=空){
queueSession.close();
}
如果(queueConnection!=空){
queueConnection.close();
}
}
赶上(例外前){
ex.printStackTrace();
}
}
}
5,消息消费者从JMS的接受消息的步骤:
(一)使用的JNDI查询对象的JMS ConnectionFactory和目的地(JMS队列/主题)
(2)使用管理对象的JMS ConnectionFactory建立连接连接
(3)使用连接会话连接建立会话
(4)使用会话会话和管理对象目的地创建消息消费者MessageReceiver
(5)使用消息消费者MessageReceiver接受消息,需要用setMessageListener将MessageListener的接口绑定到MessageReceiver
消息消费者必须实现了MessageListener的接口,需要定义的onMessage事件方法。
一个消息消费者的例子:
包myjms;
进口java.util中.*;
进口javax.naming中.*;
进口javax.jms .*;
公共类MessageReciever
实现MessageListener的{
公共无效的onMessage(献辞){
如果(消息的instanceof的TextMessage){
TextMessage中的TextMessage =(TextMessage中)消息;
尝试{
System.out.println(“消息内容是:”+ textMessage.getText());
}
赶上(JMSException的é){
e.printStackTrace();
}
}
}
公共静态无效的主要(字串[] args){
MessageReciever msgRcvr =新MessageReciever();
弦乐queueConnectionFactoryName =“myjmsconnectionfactory”;
弦乐queueName =“myjmsqueue”;
布尔成交= 0;
诠释acknowledgementMode = Session.AUTO_ACKNOWLEDGE;
属性属性=新的属性();
properties.put(Context.INITIAL_CONTEXT_FACTORY,
“weblogic.jndi.WLInitialContextFactory”);
properties.put(Context.PROVIDER_URL,“T3的:/ /本地主机:7001”);
尝试{
语境上下文=新的InitialContext(属性);
对象obj = context.lookup(queueConnectionFactoryName);
QueueConnectionFactory的QueueConnectionFactory的=(的QueueConnectionFactory)
obj的;
obj的= context.lookup(queueName);
队列队列=(队列)obj的;
QueueConnection queueConnection = QueueConnectionFactory的。
createQueueConnection();
queueConnection.start();
QueueSession的QueueSession的= queueConnection.createQueueSession(成交,
acknowledgementMode);
QueueReceiver queueReceiver = queueSession.createReceiver(队列);
queueReceiver.setMessageListener(msgRcvr);
同步(msgRcvr){
msgRcvr.wait(100000);
}
如果(queueReceiver!=空){
queueReceiver.close();
}
如果(QueueSession的!=空){
queueSession.close();
}
如果(queueConnection!=空){
queueConnection.close();
}
}
赶上(例外前){
ex.printStackTrace();
}
}
}
6,消息驱动Bean
MDB的实际上就是一个消息消费者的客户端程序。它作为EJB容器来管理由。在JBuilder中生成一个MDB的非常简单。
作品转自:http://www.360doc.com/content/06/1229/18/15934_312218.shtml
307

被折叠的 条评论
为什么被折叠?



