elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Servlet (Connection Timeout)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Servlet (Connection Timeout)  (Leído 5,315 veces)
BlaineMonkey

Desconectado Desconectado

Mensajes: 72


Ver Perfil
Servlet (Connection Timeout)
« en: 15 Junio 2010, 17:38 pm »

Tengo una clase java que llama a un Servlet, el problema es que he definido los timeouts pero parece que no funcionan. Pongo el código por si estoy haciendo algo mal:
URL myURL = "http://personal/perServlet";
URLConnection conn;
try {
   conn = myURL.openConnection();
   conn.setConnectTimeout(100);
   conn.setDoInput(true);
   String str = "";
   InputStream iStream = conn.getInputStream();
   conn.setReadTimeout(100);
}catch(Exception e){
e.printStackTrace();
}

Es al realizar el conn.getInputStream() donde se queda aprox 3 segundos.
¿Hay posibilidad de cambiar ese timeout?


En línea

kinos

Desconectado Desconectado

Mensajes: 104



Ver Perfil
Re: Servlet (Connection Timeout)
« Respuesta #1 en: 15 Junio 2010, 22:07 pm »

Prueba a establecer el conn.setReadTimeout(100); antes de hacer la petición conn.getInpuStream();

Código
  1. URL myURL = "http://personal/perServlet";
  2. try {
  3.   conn = myURL.openConnection();
  4.   conn.setConnectTimeout(100);
  5.   conn.setReadTimeout(100);
  6.   conn.setDoInput(true);
  7.   String str = "";
  8.   InputStream iStream = conn.getInputStream();
  9. }catch(Exception e){
  10. e.printStackTrace();
  11. }
  12.  

Ya comentaras si hay suerte.


En línea

BlaineMonkey

Desconectado Desconectado

Mensajes: 72


Ver Perfil
Re: Servlet (Connection Timeout)
« Respuesta #2 en: 16 Junio 2010, 16:44 pm »

Poniendo setReadTimeout antes de realizar el getInputStream si hace el timeout, el problema es que aunque esté conectado al Servlet, salta el timeout.

Lo que necesito es comprobar de forma rápida (no se cómo) si el servlet está lanzado o no sin que tenga que saltar el timeout por defecto (que son 3"). El readTimeout no me sirve porque el servlet puede tardar lo que necesite en devolver los datos, lo que necesito que sea rápido es el saber que el Servlet no está lanzado.

¿Cómo puedo hacerlo?

En línea

kinos

Desconectado Desconectado

Mensajes: 104



Ver Perfil
Re: Servlet (Connection Timeout)
« Respuesta #3 en: 16 Junio 2010, 22:27 pm »

No se sobre servlets pero intentaré hecharte una mano.

Lo que quieres saber es desde el lado del cliente si se ha cargado el servlet no? Es decir como si en el navegador web introduces la url y saber el momento en el que se carga?

O por el contrario te gustaría saber desde el lado del servidor el momento en el que se ha iniciado. En este caso, podrías pasarle al servlet cuando lo construyes un objeto con una variable de fecha y tiempo. Entonces en el método init pones datos en dicha variable.
En línea

BlaineMonkey

Desconectado Desconectado

Mensajes: 72


Ver Perfil
Re: Servlet (Connection Timeout)
« Respuesta #4 en: 17 Junio 2010, 10:32 am »

No se sobre servlets pero intentaré hecharte una mano.

Lo que quieres saber es desde el lado del cliente si se ha cargado el servlet no? Es decir como si en el navegador web introduces la url y saber el momento en el que se carga?

O por el contrario te gustaría saber desde el lado del servidor el momento en el que se ha iniciado. En este caso, podrías pasarle al servlet cuando lo construyes un objeto con una variable de fecha y tiempo. Entonces en el método init pones datos en dicha variable.

Muchas gracias por tu ayuda.

Lo que necesito es detectar de alguna forma si el Servlet está lanzado, para en caso de no estarlo, mostrar un mensaje de error y que la aplicación continúe su ejecución. Si por el contrario hay conexión con él, la aplicación leerá los datos que envía. Quiero poder definir el tiempo que va a invertir la aplicación en intentar ver si el servlet está disponible o no. Necesito que el proceso de comprobación sea lo más rápido posible.

Pensaba que se podría realizar indicando en connectionTimeout el tiemout de conexión, pero resulta que no hace caso al valor que ponga, y el readTimeout no sirve porque no sé el tiempo que tarda el servlet en responder, y si la comunicación es correcta no tengo que cortarla.

¿Cómo puedo hacerlo?



En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Timeout en mètodo connect de SocketChannel
Java
RyogiShiki 0 2,313 Último mensaje 16 Agosto 2011, 04:28 am
por RyogiShiki
TCP timeout and retransmission(libro TCP Illustrated vol 1, Stevens)
Redes
eternoneofito 3 4,025 Último mensaje 22 Agosto 2011, 22:06 pm
por madpitbull_99
Controlar TimeOut en conexión
Java
imaginawireless 4 5,825 Último mensaje 23 Febrero 2012, 04:41 am
por RyogiShiki
Read timeout
Java
Xedrox 2 2,171 Último mensaje 5 Septiembre 2014, 20:45 pm
por Chuidiang
Controlar Timeout mediante un EJB « 1 2 »
Java
routerico 12 6,046 Último mensaje 2 Febrero 2015, 21:04 pm
por Usuario Invitado
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines