/[projects]/miscJava/Test3/src/dk/thoerup/messagedriven/ReverserServlet.java
ViewVC logotype

Annotation of /miscJava/Test3/src/dk/thoerup/messagedriven/ReverserServlet.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1275 - (hide annotations) (download)
Thu Apr 7 19:14:32 2011 UTC (13 years, 1 month ago) by torben
File size: 2802 byte(s)
Add (non-functional) two-way jms sample
1 torben 1275 package dk.thoerup.messagedriven;
2    
3     import java.io.IOException;
4    
5     import javax.annotation.Resource;
6     import javax.jms.Message;
7     import javax.jms.MessageListener;
8     import javax.jms.MessageProducer;
9     import javax.jms.Queue;
10     import javax.jms.QueueConnection;
11     import javax.jms.QueueConnectionFactory;
12     import javax.jms.QueueReceiver;
13     import javax.jms.QueueSession;
14     import javax.jms.Session;
15     import javax.jms.TextMessage;
16     import javax.servlet.ServletException;
17     import javax.servlet.annotation.WebServlet;
18     import javax.servlet.http.HttpServlet;
19     import javax.servlet.http.HttpServletRequest;
20     import javax.servlet.http.HttpServletResponse;
21    
22     @WebServlet(name = "ReverserServlet", urlPatterns = { "/ReverserServlet" })
23     public class ReverserServlet extends HttpServlet {
24     private static final long serialVersionUID = 1L;
25    
26     // resource mapped vars may of course not be static !
27     @Resource(mappedName = "jms/helloFactory")
28     private QueueConnectionFactory connectionFactory;
29    
30     @Resource(mappedName = "jms/reverse")
31     private Queue queue;
32    
33     @Resource(mappedName = "jms/reverseResponse")
34     private Queue responseQueue;
35    
36    
37    
38     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
39     String msg = request.getParameter("msg");
40     if (msg == null)
41     msg = "Default";
42    
43     try {
44    
45    
46     QueueConnection connection = connectionFactory.createQueueConnection();
47    
48    
49     QueueSession session = connection.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
50     MessageProducer producer = session.createProducer(queue);
51    
52     TextMessage message = session.createTextMessage();
53    
54     message.setText(msg);
55     message.setJMSReplyTo(responseQueue);
56    
57    
58     producer.send(message);
59     producer.close();
60     connection.close();
61     ///new session for receiving
62    
63    
64     connection = connectionFactory.createQueueConnection();
65     session = connection.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
66     QueueReceiver consumer = session.createReceiver(responseQueue);
67    
68    
69    
70     Message reply = consumer.receive(1000); //wait max 500 ms for replay
71    
72    
73     if (reply != null)
74     response.getWriter().print("Reply: " /*+ reply.getText()*/ );
75     else
76     response.getWriter().print("No reply !!!");
77    
78     connection.close();
79     } catch (Exception e) {
80     throw new ServletException(e);
81     }
82     }
83    
84     class Test implements MessageListener {
85    
86     @Override
87     public void onMessage(Message message) {
88     // TODO Auto-generated method stub
89     System.out.println("onMessage() ");
90     }
91    
92     }
93     }

  ViewVC Help
Powered by ViewVC 1.1.20