1 29 30 package com.caucho.jms.services; 31 32 import com.caucho.jms.util.BytesMessageOutputStream; 33 import com.caucho.vfs.VfsStream; 34 import com.caucho.vfs.WriteStream; 35 36 import javax.jms.*; 37 import javax.servlet.ServletException ; 38 import javax.servlet.http.HttpServlet ; 39 import javax.servlet.http.HttpServletRequest ; 40 import javax.servlet.http.HttpServletResponse ; 41 import java.io.IOException ; 42 import java.io.InputStream ; 43 import java.util.logging.Logger ; 44 45 public class JMSServlet extends HttpServlet { 46 private static final Logger log = 47 Logger.getLogger(JMSServlet.class.getName()); 48 49 private Connection _jmsConnection; 50 private ConnectionFactory _connectionFactory; 51 private Destination _destination; 52 private MessageProducer _producer; 53 private Session _jmsSession; 54 55 public void setDestination(Destination destination) 56 { 57 _destination = destination; 58 } 59 60 public void setConnectionFactory(ConnectionFactory connectionFactory) 61 { 62 _connectionFactory = connectionFactory; 63 } 64 65 public void init() 66 { 67 try { 68 _jmsConnection = _connectionFactory.createConnection(); 69 _jmsSession = 70 _jmsConnection.createSession(false, Session.AUTO_ACKNOWLEDGE); 71 _producer = _jmsSession.createProducer(_destination); 72 } catch (Exception e) { 73 log.fine(e.toString()); 74 } 75 } 76 77 public void service(HttpServletRequest request, HttpServletResponse response) 78 throws ServletException , IOException 79 { 80 InputStream is = request.getInputStream(); 81 82 try { 83 BytesMessage message = _jmsSession.createBytesMessage(); 84 85 BytesMessageOutputStream out = new BytesMessageOutputStream(message); 86 WriteStream ws = VfsStream.openWrite(out); 87 88 ws.writeStream(is); 89 90 ws.flush(); 91 out.flush(); 92 93 _producer.send(message); 94 } catch (JMSException e) { 95 throw new ServletException (e); 96 } 97 } 98 } 99 | Popular Tags |