package test; import java.io.*; import javax.annotation.Resource; import javax.inject.Inject; import javax.jms.*; import javax.servlet.*; import javax.servlet.http.*; import javax.transaction.UserTransaction; public class TestServlet extends HttpServlet { @Resource(mappedName = "jms/jms_unit_test_Queue") private Queue queue; @Inject @JMSConnectionFactory("jms/jms_unit_test_QCF") @JMSSessionMode(JMSContext.AUTO_ACKNOWLEDGE) private JMSContext jmsContext; @Inject UserTransaction ut; private static String transactionScope = "around TransactionScoped"; public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException { boolean success = true; String context; try { ut.begin(); JMSProducer producer = jmsContext.createProducer(); TextMessage msg = jmsContext.createTextMessage("Hello Servlet"); producer.send(queue, msg); context = jmsContext.toString(); ut.commit(); if(context.indexOf(transactionScope) == -1){ throw new ServletException("NOT in transaction scope!"); } } catch (Exception e) { throw new ServletException(e); } res.getWriter().print(success); } }