--- miscJava/Test3/src/dk/thoerup/messagedriven/ProducerServlet.java 2011/04/07 05:24:58 1272 +++ 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; @@ -21,28 +22,28 @@ 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") + @Resource(mappedName = "jms/helloFactory") private static ConnectionFactory connectionFactory; - //@Resource(mappedName = "jms/hello") + @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"); + 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); } @@ -54,7 +55,6 @@ Connection connection = connectionFactory.createConnection(); - //Connection connection = connectionFactory.createConnection(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); MessageProducer producer = session.createProducer(queue); @@ -64,7 +64,7 @@ producer.send(message); response.getWriter().print("Message sent" ); } catch (Exception e) { - response.getWriter().print("Error:" + e.getMessage() ); + throw new ServletException(e); } }