--- miscJava/Test3/src/dk/thoerup/messagedriven/ProducerServlet.java 2011/04/06 21:41:41 1271 +++ miscJava/Test3/src/dk/thoerup/messagedriven/ProducerServlet.java 2011/04/07 05:28:26 1273 @@ -2,6 +2,7 @@ import java.io.IOException; +import javax.annotation.Resource; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.MessageProducer; @@ -9,6 +10,7 @@ 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; @@ -20,32 +22,39 @@ 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 these work ?? + // 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(); + if (connectionFactory == null) { + connectionFactory = (ConnectionFactory)ic.lookup("jms/helloFactory"); + System.out.println("@Resource failed for connection factory"); + } + if (queue == null) { + queue = (Queue)ic.lookup("jms/hello"); + System.out.println("@Resource failed for queue"); + } + } catch(NamingException ne) { + throw new ServletException(ne); + } + } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { - InitialContext ic = new InitialContext(); - ConnectionFactory cf = (ConnectionFactory)ic.lookup("jms/helloFactory"); - Connection connection = cf.createConnection(); - Queue queue = (Queue)ic.lookup("jms/hello"); + + Connection connection = connectionFactory.createConnection(); - //Connection connection = connectionFactory.createConnection(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); MessageProducer producer = session.createProducer(queue); @@ -55,7 +64,7 @@ producer.send(message); response.getWriter().print("Message sent" ); } catch (Exception e) { - response.getWriter().print("Error:" + e.getMessage() ); + throw new ServletException(e); } }