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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1275 - (show 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 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