У меня есть API Servful Service API, разработанный с JAX-RS и Jersey. Я развернул то же самое в Tomcat 7. Теперь я хотел бы внедрить ActiveMQ, чтобы я сохранил все запросы в очереди и обработал ресурс запроса. Как это сделать и интегрировать с Tomcat7. Как интегрировать ActiveMQ с Tomcat7 или My Service Service WebApp. Как позвонить в службу. < /p>
Важно:-
Внутреннее API REST я использую концепцию FilterChiping для проблем безопасности, и после проверки вызывающей стороны я просто пересылаю запрос в ресурс. Для этого я добавил в web.xml. < /P>
Спасибо < /p>
Вот мой класс:-< /strong> < /p>
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);
}
}
}
}
< /code>
Вот мой пример класса для ActiveMQ:-< /strong> < /p>
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());
}
}
}
< /code>
Теперь, если какой -либо запрос поступает в классе лимитных фильтров, я пересылаю непосредственно в ресурсы после некоторой аутентификации Mecanisam. Вот почему я использую концепцию фильтра для ловли всех запросов. < /p>
Второй класс - это пример класса, когда я работаю; Обмен сообщениями внедряет и разбирается; Я вижу в консоли для ActiveMQ. < /p>
В первом классе я просто пишу "chain.dofilter (запрос, ответ)" < /strong>, чтобы переслать весь HTTP -запрос в соответствующий ресурс. Теперь, как сделать здесь. Куда поместить HTTP -запрос. Мне нужно обрабатывать каждый запрос асинхронно. Отдых синхронно. < /p>
Пожалуйста, предложите какой -нибудь путь. и объясните свой ответ.>
Подробнее здесь: https://stackoverflow.com/questions/197 ... ntegration