Spring JMS使用回调接口发送消息
2009-05-24 16:20
483 查看
使用
execute()
方法
Send()
方法适合普通的消息发送操作
,
但有时需要在
session
或
MessageProducer
上执行多个操作
,
对此
Spring
提供了
SessionCallback
和
ProducerCallback
回调接口开放出
Session
和
MessageProducer,
用记可以使用原生的
JMS
API
进行操作
;
SessionCallback
回调接口的方法
Object
doInJms(Session sessin)
用户可以先接收一个消息
,
然后再发送一个消息执行多个操作
MessageSender.java
package
cn.com.snt.spring_jms;
import
javax.jms.Destination;
import
javax.jms.JMSException;
import
javax.jms.MessageConsumer;
import
javax.jms.MessageProducer;
import
javax.jms.Session;
import
javax.jms.TextMessage;
import
org.springframework.jms.core.ProducerCallback;
import
org.springframework.jms.core.SessionCallback;
import
org.springframework.jms.core.support.JmsGatewaySupport;
public
class
MessageSenderCallback
extends
JmsGatewaySupport{
public
void
transmit(
final
String
fromQueue,
final
String toQueue){
getJmsTemplate().execute(
new
SessionCallback(){
public
Object
doInJms(Session session)
throws
JMSException {
Destination
fromDest=session.createQueue(fromQueue);
Destination
toDest=session.createQueue(toQueue);
MessageConsumer
consumer=session.createConsumer(fromDest);
System.
out
.println(
"receive
msg......"
);
TextMessage
msg=(TextMessage) consumer.receiveNoWait();
if
(msg!=
null
){
System.
out
.println(
"receiver
msg "
+msg +
"/n messingID"
+msg.getJMSMessageID());
MessageProducer
producer=session.createProducer(toDest);
producer.send(msg);
System.
out
.println(
"msg
sended!"
);
}
return
null
;
}
});
}
public
void
transmit1(){
getJmsTemplate().execute(
new
ProducerCallback(){
public
Object
doInJms(Session session, MessageProducer producer)
throws
JMSException {
return
null
;
}
});
}
}
execute()
方法
Send()
方法适合普通的消息发送操作
,
但有时需要在
session
或
MessageProducer
上执行多个操作
,
对此
Spring
提供了
SessionCallback
和
ProducerCallback
回调接口开放出
Session
和
MessageProducer,
用记可以使用原生的
JMS
API
进行操作
;
SessionCallback
回调接口的方法
Object
doInJms(Session sessin)
用户可以先接收一个消息
,
然后再发送一个消息执行多个操作
MessageSender.java
package
cn.com.snt.spring_jms;
import
javax.jms.Destination;
import
javax.jms.JMSException;
import
javax.jms.MessageConsumer;
import
javax.jms.MessageProducer;
import
javax.jms.Session;
import
javax.jms.TextMessage;
import
org.springframework.jms.core.ProducerCallback;
import
org.springframework.jms.core.SessionCallback;
import
org.springframework.jms.core.support.JmsGatewaySupport;
public
class
MessageSenderCallback
extends
JmsGatewaySupport{
public
void
transmit(
final
String
fromQueue,
final
String toQueue){
getJmsTemplate().execute(
new
SessionCallback(){
public
Object
doInJms(Session session)
throws
JMSException {
Destination
fromDest=session.createQueue(fromQueue);
Destination
toDest=session.createQueue(toQueue);
MessageConsumer
consumer=session.createConsumer(fromDest);
System.
out
.println(
"receive
msg......"
);
TextMessage
msg=(TextMessage) consumer.receiveNoWait();
if
(msg!=
null
){
System.
out
.println(
"receiver
msg "
+msg +
"/n messingID"
+msg.getJMSMessageID());
MessageProducer
producer=session.createProducer(toDest);
producer.send(msg);
System.
out
.println(
"msg
sended!"
);
}
return
null
;
}
});
}
public
void
transmit1(){
getJmsTemplate().execute(
new
ProducerCallback(){
public
Object
doInJms(Session session, MessageProducer producer)
throws
JMSException {
return
null
;
}
});
}
}
相关文章推荐
- ActiveMQ使用spring JmsTemplate发送消息(一)
- ActiveMQ使用spring JmsTemplate发送消息(一)
- ActiveMQ使用spring JmsTemplate发送消息(一)
- ActiveMQ使用spring JmsTemplate发送消息(一)
- ActiveMQ使用spring JmsTemplate发送消息(一)
- ActiveMQ使用spring JmsTemplate发送消息(一)
- ActiveMQ使用spring JmsTemplate发送消息(一)
- ActiveMQ使用spring JmsTemplate发送消息(一)
- ActiveMQ使用spring JmsTemplate发送消息(一)
- ActiveMQ使用spring JmsTemplate发送消息(一)
- ActiveMQ使用spring JmsTemplate发送消息(一)
- ActiveMQ使用spring JmsTemplate发送消息(一)
- ActiveMQ使用spring JmsTemplate发送消息(一)
- ActiveMQ使用spring JmsTemplate发送消息(一)
- ActiveMQ使用spring JmsTemplate发送消息(一)
- ActiveMQ使用spring JmsTemplate发送消息(一)
- spring-jms(activemq实现)使用queue发送消息简单例子
- ActiveMQ使用spring JmsTemplate发送消息(一)
- ActiveMQ使用spring JmsTemplate发送消息(一)
- ActiveMQ使用spring JmsTemplate发送消息(一)