package dk.thoerup.messagedriven; import java.io.IOException; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.MessageProducer; import javax.jms.Queue; import javax.jms.Session; import javax.jms.TextMessage; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet(name = "ProducerServlet", urlPatterns = { "/ProducerServlet" }) public class ProducerServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public ProducerServlet() { super(); // TODO Auto-generated constructor stub } // why doesn't @Resource work ?? //@Resource(mappedName = "jms/helloFactory") private static ConnectionFactory connectionFactory; //@Resource(mappedName = "jms/hello") private static Queue queue; @Override public void init() throws ServletException { try { InitialContext ic = new InitialContext(); connectionFactory = (ConnectionFactory)ic.lookup("jms/helloFactory"); queue = (Queue)ic.lookup("jms/hello"); } catch(NamingException ne) { throw new ServletException(ne); } } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { Connection connection = connectionFactory.createConnection(); //Connection connection = connectionFactory.createConnection(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); MessageProducer producer = session.createProducer(queue); TextMessage message = session.createTextMessage(); message.setStringProperty("name", "World!!"); message.setText("this is the body"); producer.send(message); response.getWriter().print("Message sent" ); } catch (Exception e) { response.getWriter().print("Error:" + e.getMessage() ); } } }