El foro de caduceus.es ha sido migrado a meditecs.com. Descubre más sobre el cambio en este post.
🇬🇧 English speaker? Go to Meditecs forums in English!
Hola a tod@s!
Estoy probando la versión 4.5 de Mirth connect administrator. He empezado a hacer alguna prueba y me he dado cuenta que cuando intento hacer un deploy de un canal de tipo Web Service Listener muestra el error que os muestro en la imagen adjunta.
Espero vuestra ayuda.
Muchas gracias!
El problema era la versión de java instalada, ahora he instalado Java 8 y funciona!
Muy buenas, Rosam:
Me alegro de que hayas podido hacerlo funcionar finalmente. No obstante, te comento algunas cosas que podrían ser de tu interés.
Parece que otros usuarios tienen un problema similar en estas últimas versiones de Mirth. Este error se produce porque en versiones modernas de Java como OpenJDK 11 y superiores, la implementación de JAX-WS ha dejado de estar incluida dentro del runtime.
Usar Java 8 en el servidor de Mirth Connect como comentas, sería una posible solución, puesto que esa versión del runtime aún la incluye. Otra solución sería añadir las bibliotecas externas que implementan esta funcionalidad, añadiendo todos los JAR necesarios a la carpeta custom-lib.
Ya que Mirth Connect da soporte a versiones como OpenJDK 11, ellos mismos deberían solucionar este problema incluyendo las bibliotecas que implementan JAX-WS. De hecho, según su código fuente, la versión 4.5 de Mirth Connect incluye estas bibliotecas. Es posible que no se esté cargando por algún motivo, o simplemente no se estén distribuyendo por alguna de las vías (por ejemplo tras algún proceso de actualización de versión).
Es extraño que además algunas personas reporten que este fallo solo sucede de forma intermitente, por lo que me hace pensar que la inclusión o no de las bibliotecas no es el único problema.
Aquí tienes más información de otros usuarios con un problema similar:
Un saludo
Hola @jluengo ,
Ahora que ya me funciona el Web Service Listener tengo problemas con el Web Service Sender 😥 😥
He instalado los certificados como siempre, si importo un canal de la versión 3.7 y no toco nada más me funciona todo correctamente. Pero si intento crear un nuevo conector de tipo Web Service Sender añadiendo la URL y usuario y password cuando ejecuto el "Get Operations" muestra el error que os muestro en pantalla (he ocultado la url).
Os agradecería vuestra ayuda!
Muchas gracis
Hola de nuevo, @rosam:
Por lo que veo, parece que el servidor está devolviendo un error de autenticación HTTP 401. Si el servidor ha utilizado este código de error correctamente, significa que las credenciales de autenticación no son correctas.
Da igual las credenciales que pongas en el conector, ya que Mirth no parece soportar el uso de credenciales de autenticación para obtener el WSDL (El botón de get operations). He comprobado que tanto la versión 3.7.1 como la 4.5.0 mandan una petición sin autenticar al servidor, aunque se establezan usuario y contraseña en los campos correspondientes. Quizá el servicio web al que estés contactando haya cambiado y antes lo permitiese y ya no.
GET / HTTP/1.1 User-Agent: Jakarta Commons-HttpClient/3.0.1 Host: localhost:5764
GET / HTTP/1.1 User-Agent: Java/11.0.22 Host: localhost:5764 Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 Connection: keep-alive
Si realmente el servidor requiere de un usuario y contraseña para consultar el WSDL, se me ha ocurrido una forma bastante sencilla de obtenerlo:
- Crear un nuevo canal que tenga un HTTP listener y un HTTP sender para que haga de proxy y obtenga el WSDL, utilizando las credenciales adecuadas.
- En tu canal con el Web Service Sender, le pones la dirección HTTP de este nuevo canal para que sea este el que te dé el WSDL del servidor remoto. Como solo es necesario una vez, puedes deshabilitar o eliminar el canal anterior una vez hecho este paso.
Un saludo y ¡que pases un buen fin de semana!
@jluengo Muchas gracias por tu ayuda!
Me ha funcionado perfectamente, però esto entiendo que és un fallo de la nueva versión de Mirth 4.5?
Un saludo,
¡Buenos días!
Pues ahora que lo dices, sí que parece un fallo. Ellos mismos indican claramente tanto en un tooltip del propio conector como en su documentación que el usuario y contraseña también se usan para la obtención del WSDL.
De hecho, acabo de comprobar que en la versión 3.7.1 sí que funciona bien. El otro día probé con un simple netcat y solo me fijé en que Mirth no enviaba la contraseña desde el principio. Sin embargo, sí que lo hace tras el challenge, cuando el servidor le devuelve un error 401 y la cabecera WWW-Authenticate, tal y como define el framework de autenticación de HTTP.
Por el contrario, Mirth Connect 4.5.0 no envía las credenciales en ningún caso.
Un saludo
Acabo de encontrar en el Github de Nextgen que ya habían reportado este mismo bug hace dos semanas:
https://github.com/nextgenhealthcare/connect/issues/6169
