spring jms 不用监听怎么获取返回消息
答案:2 悬赏:50 手机版
解决时间 2021-03-28 15:55
- 提问者网友:却不属于对方
- 2021-03-27 15:29
spring jms 不用监听怎么获取返回消息
最佳答案
- 五星知识达人网友:雪起风沙痕
- 2021-03-27 16:03
Java代码 类似于这样,把你的消息监听器放到监听器容器里面,通过“concurrentConsumers”设置并发的监听器数。
全部回答
- 1楼网友:酒者煙囻
- 2021-03-27 17:06
在调用JMS消息消费者的receive()方法接收消息时,调用线程在消息可用之前一直阻塞。该线程出了等待还是等待,无所事事。这样的消息接收是同步消息接收,因为只用等到消息到达才能接收线程的工作。
有同步的消息接收就有异步的消息接收,异步的消息接收就是注册一个消息监听器,该消息监听器必须实现javax.jms.MessageListener接口,当消息到达时将调用onMessage()方法,以消息作为方法的参数。
public class MailMessageListener implements MessageListener {
private MessageConverter messageConverter;
public void onMessage(Message msg) {
try {
System.out.println("on message:" + messageConverter.fromMessage(msg));
} catch (JMSException e) {
}
}
public void setMessageConverter(MessageConverter messageConverter) {
this.messageConverter = messageConverter;
}
}
Spring 中提供了多种消息监听器的容器,常用的容器有SimpleMessageListenerContainer 和DefaultMessageListenerContainer。SimpleMessageListenerContainer 是一个最简单的容器,不提供事务的支持,DefaultMessageListenerContainer是默认的容器实现,支持事务。
public class ToStringBase {
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
}
}
定义一个基本的对象
public class Mail extends ToStringBase {
private String mailId;
private String from;
private String to;
private String content;
public String getMailId() {
return mailId;
}
public void setMailId(String mailId) {
this.mailId = mailId;
}
public String getFrom() {
return from;
}
public void setFrom(String from) {
this.from = from;
}
public String getTo() {
return to;
}
public void setTo(String to) {
this.to = to;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}
有同步的消息接收就有异步的消息接收,异步的消息接收就是注册一个消息监听器,该消息监听器必须实现javax.jms.MessageListener接口,当消息到达时将调用onMessage()方法,以消息作为方法的参数。
public class MailMessageListener implements MessageListener {
private MessageConverter messageConverter;
public void onMessage(Message msg) {
try {
System.out.println("on message:" + messageConverter.fromMessage(msg));
} catch (JMSException e) {
}
}
public void setMessageConverter(MessageConverter messageConverter) {
this.messageConverter = messageConverter;
}
}
Spring 中提供了多种消息监听器的容器,常用的容器有SimpleMessageListenerContainer 和DefaultMessageListenerContainer。SimpleMessageListenerContainer 是一个最简单的容器,不提供事务的支持,DefaultMessageListenerContainer是默认的容器实现,支持事务。
public class ToStringBase {
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
}
}
定义一个基本的对象
public class Mail extends ToStringBase {
private String mailId;
private String from;
private String to;
private String content;
public String getMailId() {
return mailId;
}
public void setMailId(String mailId) {
this.mailId = mailId;
}
public String getFrom() {
return from;
}
public void setFrom(String from) {
this.from = from;
}
public String getTo() {
return to;
}
public void setTo(String to) {
this.to = to;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯