serwis internetowy jersey rest z integracją oprogramowania pośredniego Activemq

Mam API Restful Service opracowane z JAX-RS i jersey. Tak samo wdrożyłem w TOMCAT 7. Chciałbym teraz zaimplementować Activemq, aby zachować wszystkie żądania w kolejce i przetworzyć zasób żądania. Jak to zrobić i zintegrować z tomcat7. Jak zintegrować ActiveMq z Tomcat7 lub moją webapą usług odpoczynku. Jak zadzwonić do serwisu.

Ważne: - Wewnątrz Reszta Api używam koncepcji FilterChaining w trosce o bezpieczeństwo i po weryfikacji strony wywołującej przekazuję żądanie do zasobu. Do tego dodałem w web.xml.

Dzięki

Oto moja klasa: -

    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);
                }
            } 
            }
        }

Oto moja przykładowa klasa dla 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());
        }

    }

}

Teraz, jeśli jakakolwiek prośba pojawi się w klasie filtra ograniczającego, przesyłam bezpośrednio do zasobów po pewnym uwierzytelnieniu mekanisam. To dlatego używam koncepcji filtra do łapania wszystkich żądań.

Druga klasa to przykładowa klasa, gdy pracuję; wiadomości są enquing i dequeueing; Widzę w konsoli ActiveMq.

W pierwszej klasie po prostu piszę„chain.doFilter (żądanie, odpowiedź)” aby przekazać wszystkie żądania http do odpowiedniego zasobu. Teraz jak to zrobić. Gdzie umieścić żądanie HTTP. Muszę obsługiwać każde żądanie asynchronicznie. REST jest synchroniczny.

Proszę zasugerować jakiś sposób. i wyjaśnij swoją odpowiedź.

Dzięki / Pozdrawiam Kumar Shorav

questionAnswers(3)

yourAnswerToTheQuestion