es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Sigo obteniendo un error al llamar al servicio web XML desde SoapUI.

Estoy intentando llamar a un webservice desde SoapUI 5.6 con un almacén de claves JKS. Soy nuevo en XML y solo he trabajado con JSON antes.

He creado un proyecto en SoapUI 5.6 desde un WSDL y he cargado un almacén de claves en SoapUI con la contraseña correcta.

Obtengo un SSLHandshakeError.

Leí sobre esto y descubrí que tenía que agregar esto a vmoptions, lo cual hice:

-Dsoapui.https.protocols=SSLv3, TLSv1.2

Lo intenté con ambos, SSLv3 y TLSv1.2 por separado. Mismo resultado.

Aquí están los registros:

Registro de SoapUI:

Mon Nov 29 16:19:09 CET 2021:DEBUG: Intento 1 para ejecutar la solicitud
Mon Nov 29 16:19:09 CET 2021:DEBUG: Enviar solicitud: POST /services/XMLProdukt HTTP/1.1
Mon Nov 29 16:19:09 CET 2021: DEBUG: Error de I/O al cerrar la conexión
java.net.SocketException: La conexión o salida se ha cerrado
en java.base / sun.security.ssl.SSLSocketImpl $ AppOutputStream.write (SSLSocketImpl.java:1004)
en org.apache.http.impl.io.AbstractSessionOutputBuffer.flushBuffer (AbstractSessionOutputBuffer.java:160)
en org.apache.http.impl.io.AbstractSessionOutputBuffer.flush (AbstractSessionOutputBuffer.java:168)
en org.apache.http.impl.conn.LoggingSessionOutputBuffer.flush (LoggingSessionOutputBuffer.java:99)
en org.apache.http.impl.AbstractHttpClientConnection.doFlush (AbstractHttpClientConnection.java: 273).
en org.apache.http.impl.SocketHttpClientConnection.close (SocketHttpClientConnection.java:243)
en org.apache.http.impl.conn.DefaultClientConnection.close (DefaultClientConnection.java:178)
en org.apache.http.impl.conn.AbstractPooledConnAdapter.close (AbstractPooledConnAdapter.java:170)
en org.apache.http.protocol.HttpRequestExecutor.closeConnection (HttpRequestExecutor.java:142)
en org.apache.http.protocol.HttpRequestExecutor.execute (HttpRequestExecutor.java:129)
en org.apache.http.impl.client.DefaultRequestDirector.tryExecute (DefaultRequestDirector.java:684)
en org.apache.http.impl.client.DefaultRequestDirector.execute (DefaultRequestDirector.java:486)
en org.apache.http.impl.client.AbstractHttpClient.doExecute (AbstractHttpClient.java:835)
en org.apache.http.impl.client.CloseableHttpClient.execute (CloseableHttpClient.java:83)
en com.eviware.soapui.impl.wsdl.support.http.HttpClientSupport $ Helper.execute (HttpClientSupport.java:233)
en com.eviware.soapui.impl.wsdl.support.http.HttpClientSupport.execute (HttpClientSupport.java:323)
en com.eviware.soapui.impl.wsdl.submit.transports.http. HttpClientRequestTransport.submitRequest (HttpClientRequestTransport.java: 301)
en com.eviware.soapui.impl.wsdl.submit.transports.http.HttpClientRequestTransport.sendRequest (HttpClientRequestTransport.java:231)
en com.eviware.soapui.impl.wsdl.WsdlSubmit.run (WsdlSubmit.java:119)
en java.base / java.util.concurrent.Executors $ RunnableAdapter.call (Executors.java: 515)
en java.base / java.util.concurrent.FutureTask.run (FutureTask.java:264)
en java.base / java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1128)
en java.base / java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:628)
en java.base / java.lang.Thread.run (Thread.java:835)
Mon Nov 29 16:19:09 CET 2021: DEBUG: Cerrar la conexión.
Mon Nov 29 16:19:09 CET 2021: DEBUG: Conexión 0.0.0.0:49229 & lt;- & gt; 194.14.186.30:443 cerrado
Mon Nov 29 16:19:09 CET 2021: DEBUG: Conexión 0.0.0.0:49229 & lt;- & gt; 194.14.186.30:443 cerrado
Mon Nov 29 16:19:09 CET 2021: ERROR: Excepción en la solicitud: javax.net.ssl.SSLHandshakeException: Recibido error fatal: handshake_failure
Mon Nov 29 16:19:09 CET 2021: ERROR: Ocurrió un error [Recibido error fatal: handshake_failure], consulte el registro de errores para obtener detalles
Mon Nov 29 16:19:09 CET 2021: INFO:Error obteniendo respuesta para [XMLProduktSoapBinding.getProdukt: Solicitud 1]; javax.net.ssl.SSLHandshakeException: recibido error fatal: handshake_failure

Registro de errores:

Mon Nov 29 16:19:09 CET 2021: ERROR: javax.net.ssl.SSLHandshakeException: Recibido error fatal: handshake_failure
javax.net.ssl.SSLHandshakeException: Recibido error fatal: handshake_failure
a java.base / sun.security.ssl.Alert.createSSLException (Alert.java:131)
en java.base / sun.security.ssl.Alert.createSSLException (Alert.java:117)
en java.base / sun.security.ssl.TransportContext.fatal (TransportContext.java:307)
en java.base / sun.security.ssl.Alert $ AlertConsumer.consumir (Alert.java:285)
a java.base / sun.security.ssl.TransportContext.dispatch (TransportContext.java:180)
en java.base / sun.security.ssl.SSLTransport.decode (SSLTransport.java:164)
a java.base / sun.security.ssl.SSLSocketImpl.decode (SSLSocketImpl.java:1180)
a java.base / sun.security.ssl.SSLSocketImpl.readHandshakeRecord (SSLSocketImpl.java:1091)
a java.base / sun.security.ssl.SSLSocketImpl.startHandshake (SSLSocketImpl.java:402)
en java.base / sun.security.ssl.SSLSocketImpl.ensureNegotiated (SSLSocketImpl.java:721)
a java.base / sun.security.ssl.SSLSocketImpl $ AppOutputStream.write (SSLSocketImpl.java:998)
en org.apache.http.impl.io.AbstractSessionOutputBuffer.flushBuffer (AbstractSessionOutputBuffer.java:160)
en org.apache.http.impl.io.AbstractSessionOutputBuffer.write (AbstractSessionOutputBuffer.java:182)
en org.apache.http.impl.conn.LoggingSessionOutputBuffer.write (LoggingSessionOutputBuffer.java:75)
en org.apache.http.impl.io.ContentLengthOutputStream.write (ContentLengthOutputStream.java:113)
en org.apache.http.entity.ByteArrayEntity.writeTo (ByteArrayEntity.java:114)
en org.apache.http.entity.HttpEntityWrapper.writeTo (HttpEntityWrapper.java:94)
en org.apache.http.impl.client.EntityEnclosingRequestWrapper $ EntityWrapper.writeTo (EntityEnclosingRequestWrapper.java:110)
en org.apache.http.impl.entity.EntitySerializer.serialize (EntitySerializer.java:118)
en org.apache.http.impl.AbstractHttpClientConnection.sendRequestEntity (AbstractHttpClientConnection.java:266)
en org.apache.http.impl.conn.AbstractClientConnAdapter.sendRequestEntity (AbstractClientConnAdapter.java:239)
en org.apache.http.protocol.HttpRequestExecutor.doSendRequest (HttpRequestExecutor.java:238)
en com.eviware.soapui.impl.wsdl.support.http.HttpClientSupport $ SoapUIHttpRequestExecutor.doSendRequest (HttpClientSupport.java:119)
en org.apache.http.protocol.HttpRequestExecutor.execute (HttpRequestExecutor.java:123)
en org.apache.http.impl.client.DefaultRequestDirector.tryExecute (DefaultRequestDirector.java:684)
en org.apache.http.impl.client.DefaultRequestDirector.execute (DefaultRequestDirector.java:486)
en org.apache.http.impl.client.AbstractHttpClient.doExecute (AbstractHttpClient.java:835)
en org.apache.http.impl.client.CloseableHttpClient.execute (CloseableHttpClient.java:83)
en com.eviware.soapui.impl.wsdl.support.http.HttpClientSupport $ Helper.execute (HttpClientSupport.java:233)
en com.eviware.soapui.impl.wsdl.support.http.HttpClientSupport.execute (HttpClientSupport.java:323)
en com.eviware.soapui.impl.wsdl.submit.transports.http.HttpClientRequestTransport.submitRequest (HttpClientRequestTransport.java:301)
en com.eviware.soapui.impl.wsdl.submit.transports.http.HttpClientRequestTransport.sendRequest (HttpClientRequestTransport.java:231)
en com.eviware.soapui.impl.wsdl.WsdlSubmit.run (WsdlSubmit.java:119)
en java.base / java.util.concurrent.Executors $ RunnableAdapter.call (Executors.java:515)
en java.base / java.util.concurrent.FutureTask.run (FutureTask.java:264)
en java.base / java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1128)
en java.base / java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:628)
en java.base / java.lang.Thread.run (Thread.java:835)

¿Alguien tiene alguna idea? Soy nuevo en XML y no sé qué está mal.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Basado en los registros de error, parece que el handshake SSL entre SoapUI y el servicio web está fallando. Esto podría ser causado por varios factores como la configuración incorrecta del almacén de claves o protocolos SSL/TLS no compatibles. Aquí hay algunas cosas que puedes probar:

    1. Revisa dos veces la configuración del almacén de claves en SoapUI. Asegúrate de que el almacén de claves esté cargado correctamente y de que la contraseña sea correcta. Puedes verificar esto revisando la pestaña del almacén de claves en las preferencias de SoapUI.
    2. Revisa si el protocolo SSL/TLS utilizado por el servicio web es compatible con SoapUI. De los registros, ya has intentado usar tanto SSLv3 como TLSv1.2, pero podrías probar otros protocolos como TLSv1.0 o TLSv1.1 si son compatibles con el servicio web.

    3. Intenta desactivar la validación de certificado en SoapUI. Esto no se recomienda para uso en producción, pero podría ayudarte a identificar la causa del problema. Para hacer esto, puedes agregar la siguiente propiedad a las opciones de vm: -Dsoapui.https.certificate.validation=false.

    4. Verifica que el almacén de claves contenga los certificados y/o claves correctos requeridos por el servicio web. Es posible que también necesites importar cualquier certificado intermedio o de raíz en la cadena. Puedes usar herramientas como keytool o OpenSSL para inspeccionar el almacén de claves y verificar su contenido.

    5. Revisa con el proveedor del servicio web si hay problemas o restricciones conocidos al usar un almacén de claves JKS. Pueden tener requisitos o recomendaciones específicas sobre cómo configurar el almacén de claves.

    Esperemos que una de las soluciones anteriores resuelva el error SSLHandshakeError y te permita llamar con éxito el servicio web desde SoapUI. ¡Buena suerte!

Comments are closed.