lunes, 2 de junio de 2014

Controlar el tiempo de espera al consumir un webservice

Durante los últimos días, al consumir los Webservice del SRI hemos podido notar que muchas veces se queda en espera sin retornar el objeto de respuesta. Es por eso que es importante controlar el tiempo de espera máximo en nuestra aplicación (Timeout). Para aquellos quienes estén usando el JDK 1.6 este código les servirá para poder establecer un mecanismo de control:
port = service.getRecepcionComprobantesPort();
((BindingProvider) port).getRequestContext().put("com.sun.xml.internal.ws.connect.timeout", 5000);
((BindingProvider) port).getRequestContext().put("com.sun.xml.internal.ws.request.timeout", 5000);
Espero que este código les sea de utilidad y no se olviden de seguirnos a través de nuestra página en Facebook.

4 comentarios:

  1. Fernando. Tengo un cliente java de escritorio. Estoy probando estos metodos pero no me reconoce BindingProvider. Alguna alternativa??

    ResponderEliminar
  2. Fernando, muy buena ayuda, te realizo una consulta tal vez me puedas ayudar:
    Cuando se consume el WebService como WebServicereference y la respuesta es DEVUELTA no me muestra los detalles del error, a que crees que se pueda deber.
    Gracias un saludo.

    Att. J. Desa.

    ResponderEliminar
  3. En tu experiencia, piensas que este es un problema o "bug" en el código o proceso del SRI?? el fin de semana me paso muchas veces no recibo el objeto y mi aplicación times out.
    al enviar una factura en el primer webservice del SRI "Recepción de comprobantes" establece el handshake pero nunca recibo un objeto respuesta de vuelta y luego de un minuto (57 segundos para ser exacto) times out. Cabe decir que envió varias facturas y mi proceso trabaja bien porque logro autorizar sin problema pero no se la razon por la cual no hay respuesta y times out.
    Donde se puede verificar o emitir un pedido de verificación de un echo como este en el SRI, hay algún departamento o email o algún contacto de soporte que funcione. Los contactos publicados en la pagina web del SRI son en vano, nunca nadie responde emails ni telefonos y la ficha técnica del SRI es realmente muy pobre.
    Mi codigo esta echo en .NET. En tu experiencia tienes alguna informacion que me pueda ayudar o simplemente el SRI no funciona de vez en cuando por x razon y asumo que mi codigo es valido.
    Gracias
    Att Freddy V

    ResponderEliminar
  4. A pesar de incluir las dos lineas sugeridas con un timeout de 15s, tengo el mismo problema del comentario anterior, donde la aplicación hace la conexión pero al minuto establece que no hubo respuesta, en vez de hacerlo a los 15s.

    Se agradecen sugerencias y comentarios

    ResponderEliminar