Verificar la disponibilidad de los webservices del SRI
Muchas veces, mientras desarrollamos nuestras aplicaciones de facturación electrónica, precisamos de saber el estado de los servicios web del SRI. En este artículo les presento una manera de poder verificar su disponibilidad para poder emitir nuestros comprobantes bajo un tipo de emisión normal o en contingencia, según sea el caso.
Luego de haber creado nuestro cliente proxy, podemos hacer uso de las clases que se generan para poder determinar el estado de conexión mediante el siguiente método:
public static Object getWebService(String wsdlLocation) { try { QName qname = new QName("http://ec.gob.sri.ws.recepcion", "RecepcionComprobantesService"); URL url = new URL(wsdlLocation); RecepcionComprobantesService service = new RecepcionComprobantesService(url, qname); return null; } catch (MalformedURLException ex) { return ex; } catch (WebServiceException ws) { return ws; } } public static boolean existeConexion(String url) { int i = 0; boolean respuesta = false; while (i < 3) { Object obj = getWebService(url); if (obj == null) { return true; } if ((obj instanceof WebServiceException)) { respuesta = false; } i++; } return respuesta; }El código podemos ejecutarlo de la siguiente manera:
public static void main(String[] args) { System.out.println(existeConexion("https://celcer.sri.gob.ec/comprobantes-electronicos-ws/RecepcionComprobantes?wsdl")); }Espero que este método les sea de utilidad. No se olviden de seguirnos a través de nuestra página en Facebook.
Gracias Rolando, una consulta que es EnvioComprobantesWs ??
ResponderBorrarHe actualizado la clase Guillermo, faltó agregar un método.
ResponderBorrarSaludos.
Gracias Rolando
ResponderBorrarQ librerias importo para obtener la propiedad o evento Qname
ResponderBorrarEstimado Rolando. Muy buenos articulos. Felicitaciones. Estoy tratando de crear webservices seguros, por ahora estoy experimentando con WSIT con Glassfish 3.1.2.2 y cuando trato de utilizar un ws con un usuario diferente al autorizado no puedo capturar las exceptiones en el cliente. Alguna idea de como hacerlo. El error se da cuando se ejecuta el método desde el cliente y no en la llamada del servicio.
ResponderBorrartengo el siguiente error algien me puede ayudar
ResponderBorrarERROR-GENERAL,Fallo al acceder al WSDL en: https://celcer.sri.gob.ec/comprobantes-electronicos-ws/RecepcionComprobantes?wsdl. Ha fallado con:
java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty.