Por lo que sé, los Servlets Java están manejando múltiples solicitudes al mismo tiempo y he buscado a través de StackOverflow y de Google, y confirmé lo que pensaba. Sin embargo, estoy bastante confundido en este momento, escribí un servlets simple que parece mostrar un comportamiento de bloqueo.Servlet parece manejar múltiples solicitudes simultáneas del navegador sincrónicamente
por lo que tienen un servlet simple:
public class MyServlet extends HttpServlet
{
private static final long serialVersionUID = 2628320200587071622L;
private static final Logger logger = Logger.getLogger(MyServlet.class);
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
logger.info("[doGet] Test before");
try {
Thread.sleep(60000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
logger.info("[doGet] Test after");
resp.setContentType("text/plain");
resp.getWriter().write("OK");
}
}
Entonces tengo 2 ventanas del navegador, que se abrió en el ~ mismo tiempo que afectó a mi servlet. Y el resultado es la primera solicitud que bloquea el 2do. El registro también muestra:
10:49:05,088 [http-8383-Processor14] INFO MyServlet - [doGet] Test before
10:50:05,096 [http-8383-Processor14] INFO MyServlet - [doGet] Test after
10:50:05,106 [http-8383-Processor22] INFO MyServlet - [doGet] Test before
10:51:05,112 [http-8383-Processor22] INFO MyServlet - [doGet] Test after
Siento que estoy perdiendo algo ... servlets supone que es capaz de manejar solicitudes simultáneas, pero tampoco parece estar haciéndolo. También hice lo mismo que el anterior en el método de servicio en lugar de doGet y hace lo mismo.
¿Alguna sugerencia?
Gracias
Su navegador podría serializar las solicitudes, ¿qué ocurre si intenta esto desde 2 computadoras diferentes o con 2 navegadores diferentes? (es decir, iexploere y firefox) También puede verificar los registros de acceso http para ver si las solicitudes llegan a su contenedor de servlets al mismo tiempo. – rsp
¿Puedes mostrar el 'web.xml' y (suponiendo que sea Tomcat) el' server.xml'. – beny23
@beny: No estoy seguro de cómo eso sería útil para comprender la causa del problema. ¿Puedes elaborar? – BalusC