`
feng88724
  • 浏览: 172805 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

JMS Request & Reply

    博客分类:
  • JMS
阅读更多
public String send(LogEntry log) { 
try { 
// QueueSender queuesender = queueSession.createSender(queue); QueueRequestor queueRequestor = new QueueRequestor(queueSession, queue); queueConnection.start(); 
ObjectMessage ob = queueSession.createObjectMessage(log); 
// TextMessage txs = queueSession.createTextMessage(); 
// txs.setText("I'am zhuyefeng !it's true");
 TextMessage reply = (TextMessage) queueRequestor.request(ob);
 String replys = reply.getText(); 
return replys; } 
catch (JMSException e) 
{ // TODO Auto-generated catch block 
e.printStackTrace(); 
return null; }finally{ destroy(); } } 

public void destroy() { 
try { 
queueConnection.close(); 
queueSession.close(); } 
catch (JMSException e) 
{ // TODO Auto-generated catch block 
e.printStackTrace(); } }

 
@MessageDriven(activationConfig = { @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"), @ActivationConfigProperty(propertyName = "destination", propertyValue = "queue/myQueue") }) @TransactionManagement(TransactionManagementType.BEAN) 

public class ReplyMDB implements MessageListener { public void onMessage(Message msg) { 
InitialContext context; 
QueueConnectionFactory queueConnectionFactory; 
QueueConnection queueConnection = null; QueueSession queueSession = null; Queue queue = null; 
QueueSender queuesender = null ; TextMessage tm = null ; 

try { context = new InitialContext(); 
queueConnectionFactory = (QueueConnectionFactory) context .lookup("ConnectionFactory"); 
queue = (Queue) context.lookup("queue/myQueue");
 queueConnection = queueConnectionFactory.createQueueConnection(); queueConnection.start(); 
queueSession = queueConnection.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE); 
tm = queueSession.createTextMessage(); tm.setJMSReplyTo(queue); 
// queueReceiver = queueSession.createReceiver(queue);
 ObjectMessage om = (ObjectMessage) msg; 
LogEntry lg = (LogEntry) om.getObject(); 
queuesender = queueSession.createSender((Queue)om.getJMSReplyTo()); tm.setText("OK"); queuesender.send(tm); } 
catch (JMSException e) { 
e.printStackTrace(); 
try { tm.setText("NG"); queuesender.send(tm); } 
catch (JMSException e1) { e1.printStackTrace(); } }
catch (NamingException e) { e.printStackTrace(); }
finally{ try { queueConnection.close(); queueSession.close(); } 
catch (JMSException e) { e.printStackTrace(); } } }


不使用MDB时 ,产生javax.jms.InvalidDestinationException :This destination does not exist!异常,原因调查中!
分享到:
评论

相关推荐

    camel-request-reply

    camel-requestreply-with-jms -> 使用 JMS 在骆驼队列中实现请求/回复模式。 在路线中使用榛子广播缓存。 camel-requestreply-without-jms -> 使用 seda 队列实现请求/回复。 在路线中使用榛子广播缓存。 camel-...

    JMS规范PDF

    - **交互模式:** 描述了JMS支持的请求/回复(Request/Reply)消息交互模式,这是一种常见的通信模式,允许客户端发送请求并等待响应。 综上所述,JMS规范1.1(中文版)详细阐述了Java消息服务的核心概念、架构设计...

    ConfluentJMSPOC:使用融合的jms客户端jar和activemq请求回复示例

    确保在ActiveMQ和Confluent中都创建了队列(合流中的主题) reply-queue , request-queue和invalid-queue 在一个终端中, cd confluentjms-replier和mvn clean package 在第二个终端cd confluentjms-requestor和...

    000-315 真题, PDF版, IBM WebSphere Message Broker V6.1, Solution

    SOAP Input节点、Endpoint Lookup节点、SOAP Request节点和SOAP Reply节点 - C. SQAP Input节点、Endpoint Lookup节点、SOAP Request节点和SOAP Reply节点 - D. HTTP Input节点、Database Retrieve节点、...

    ESB项目需求分析和方案设计浅析.doc

    此外,还需要考虑交易特性,如两阶段提交、消息顺序保证和适配器需求,以及消息通信模式(Send and Forget、Request/Reply或Pub/Sub)。 非功能性需求方面,需关注ESB平台的扩展性、高可用性(HA和集群)、性能...

    apache-activemq-5.11.2 附全解教程

    2. **消息模式**:ActiveMQ支持多种消息模式,如点对点(Queue)、发布/订阅(Topic)、请求/响应(Request/Reply)等,以满足不同应用场景的需求。 3. **高级路由和过滤**:ActiveMQ提供了多种消息路由策略,如...

    webmethod bpms ppt

    2. **Broker**: 提供了基于JMS的消息中间件功能,支持请求/响应(request/reply)和发布/订阅(pub/sub)两种通信模式。 3. **Developer & Adapters**: 提供了一系列开发工具和预构建的适配器,用于快速集成各种不同类型...

    WEBSPERE MQ学习

    3. **请求/响应模式(Request/Reply)**:发送者发送一个请求消息到队列,接收者处理请求后,将响应消息发送回另一个队列。这种方式常用于服务调用或远程过程调用。 4. **事务消息模式(Transacted Messaging)**:...

    activemq-cpp-library-3.6.0-src.tar.gz_C# ActiveMQ_activemq_activ

    4. **消息模式**:ActiveMQ支持多种消息模式,如点对点(Queue)、发布/订阅(Topic)、请求/响应(Request/Reply)等。这些模式适应了不同场景下的通信需求,如可靠的单次传递、广播或者分布式计算。 5. **高级...

    h_JAVA 2应用编程150例.rar

    实例119 Request-Reply模式的JMS应用 421 实例120 使用Java IDL 426 实例121 EJB与CORBA的交互 430 实例122 基于EJB的真实世界模型 433 实例123 EJB的商业应用——定购单 447 第11章 Java 2 Platform Micro Edition...

    java应用软件程序设计

    Reply模式的JMS应用 421 实例120 使用Java IDL 426 实例121 EJB与CORBA的交互 430 实例122 基于EJB的真实世界模型 433 实例123 EJB的商业应用——定购单 447 第11章 Java 2 Platform Micro Edition...

Global site tag (gtag.js) - Google Analytics