jersey resto web Service com integração de middleware do Activemq

Eu tenho uma API de serviço Restful desenvolvida com JAX-RS e jersey. Eu implantei o mesmo no TOMCAT 7. Agora gostaria de implementar o Activemq para manter todas as solicitações em uma fila e processar o recurso de solicitação. Como fazer isso e integrar com o tomcat7. Como integrar o ActiveMq com o Tomcat7 ou meu webapp de serviço de descanso. Como chamar o serviço.

Importante: - Dentro do Api Resto, estou usando o conceito FilterChaining por questão de segurança e após a verificação da parte chamadora, estou simplesmente encaminhando a solicitação para o recurso. Para isso eu adicionei no web.xml.

obrigado

Aqui está minha aula: -

    public class LimitFilter implements Filter {

        public void doFilter(ServletRequest request, ServletResponse response,
                FilterChain chain) throws IOException, ServletException {

//some authentication
                if (true) {
                    // let the request through and process as usual
                    chain.doFilter(request, response);

                } else {
                    // handle limit case, e.g. return status code 429 (Too Many
                    // Requests)
                    // see http://tools.ietf.org/html/rfc6585#page-3
                    ((HttpServletResponse) response).sendError(429);
                }
            } 
            }
        }

Aqui está a minha classe de amostra para activemq: -

public class Qservlet extends HttpServlet {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws IOException, ServletException {
            String body = "";
        try {
            // Create a ConnectionFactory

            ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("admin", "admin", ActiveMQConnection.DEFAULT_BROKER_URL);

            // Create a Connection

            Connection connection = connectionFactory.createConnection();


            Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);

            Destination destination = session.createQueue("testQ"); 
            TextMessage message = session.createTextMessage();
            message.setText( "My text message was send and received");//
            message.setJMSRedelivered(true);
            message.setJMSCorrelationID(request.getSession().getId());

            connection.start();

            MessageProducer producer = session.createProducer(destination);
            producer.setDeliveryMode(DeliveryMode.PERSISTENT);
            producer.send(message);

            message = null;
            MessageConsumer consumer = session.createConsumer(destination);
            message = (TextMessage) consumer.receive(1000);
            if (message != null) {
                body = message.getText();
            }


            producer.close();
            consumer.close();
            session.close();
            connection.close();

        } catch (Exception e) {
            System.out.println(e.toString());
        }

    }

}

Agora, se alguma solicitação estiver chegando na classe Limit Filter, estou encaminhando diretamente para os recursos após algum mecanismo de autenticação. É por isso que estou usando o conceito de filtro para capturar todas as solicitações.

Segunda classe é classe de exemplo quando estou correndo; mensagens é enquing e dequeueing; Eu posso ver no console para o ActiveMq.

Na primeira aula eu estou simplesmente escrevendo"chain.doFilter (solicitação, resposta)" para encaminhar todas as solicitações http para o respectivo recurso. Agora como fazer aqui. Onde colocar a solicitação HTTP. Eu preciso lidar com cada solicitação de forma assíncrona. REST é síncrono.

Por favor sugira alguma maneira. e explique sua resposta.

Obrigado / Cumprimentos Kumar Shorav

questionAnswers(3)

yourAnswerToTheQuestion