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!
Hi all,
I am facing a bug or something like that when I try to create a WS listener on a Mirth 3.8.1 channel.
I need a WS listener channel to receive HL7 messages and send the data to another channel to proccess the information.
See the attached file to find the channel itself.
Inbound Data Type is set to XML, I didn't touch anything more, it's a clean installation.
I tried to send some data using SOAP UI and the service only responds HTTP 500 Internal Server error, I also tried another WS (not mirth created) and works fine, so I don't think SoapUI is the problem.
On mirth, I get the following error:
Web Service Sender error ERROR MESSAGE: Error invoking web service com.sun.xml.ws.client.ClientTransportException: The server sent HTTP status code 500: Internal Server Error at com.sun.xml.ws.transport.http.client.HttpTransportPipe.checkStatusCode(HttpTransportPipe.java:324) at com.sun.xml.ws.transport.http.client.HttpTransportPipe.createResponsePacket(HttpTransportPipe.java:274) at com.sun.xml.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:232) at com.sun.xml.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:145) at com.sun.xml.ws.transport.DeferredTransportPipe.processRequest(DeferredTransportPipe.java:139) at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:1136) at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:1050) at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:1019) at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:877) at com.sun.xml.ws.client.Stub.process(Stub.java:463) at com.sun.xml.ws.client.dispatch.DispatchImpl.doInvoke(DispatchImpl.java:265) at com.sun.xml.ws.client.dispatch.DispatchImpl.invoke(DispatchImpl.java:304) at com.mirth.connect.connectors.ws.WebServiceDispatcher$DispatchTask.call(WebServiceDispatcher.java:744) at com.mirth.connect.connectors.ws.WebServiceDispatcher.send(WebServiceDispatcher.java:560) at com.mirth.connect.donkey.server.channel.DestinationConnector.handleSend(DestinationConnector.java:888) at com.mirth.connect.donkey.server.channel.DestinationConnector.process(DestinationConnector.java:518) at com.mirth.connect.donkey.server.channel.DestinationChain.doCall(DestinationChain.java:121) at com.mirth.connect.donkey.server.channel.DestinationChain.call(DestinationChain.java:63) at com.mirth.connect.donkey.server.channel.Channel.process(Channel.java:1759) at com.mirth.connect.donkey.server.channel.Channel.dispatchRawMessage(Channel.java:1221) at com.mirth.connect.donkey.server.channel.SourceConnector.dispatchRawMessage(SourceConnector.java:192) at com.mirth.connect.server.controllers.DonkeyEngineController.dispatchRawMessage(DonkeyEngineController.java:1091) at com.mirth.connect.server.controllers.DonkeyMessageController.reprocessMessages(DonkeyMessageController.java:443) at com.mirth.connect.server.api.servlets.MessageServlet$1.run(MessageServlet.java:214) at java.base/java.lang.Thread.run(Thread.java:1583)
Thanks in advance.
Hi,
Since I can't post the channel file, i was trying another ways to configure it and I found some information on log file:
ERROR 2024-05-06 14:04:10,781 [pool-64-thread-4] com.sun.xml.ws.transport.http.HttpAdapter: javax.xml.soap.SOAPException: Unable to create SAAJ meta-factory: Provider com.sun.xml.internal.messaging.saaj.soap.SAAJMetaFactoryImpl not found java.lang.Error: javax.xml.soap.SOAPException: Unable to create SAAJ meta-factory: Provider com.sun.xml.internal.messaging.saaj.soap.SAAJMetaFactoryImpl not found at com.sun.xml.ws.api.SOAPVersion.getMessageFactory(SOAPVersion.java:223) at com.sun.xml.ws.api.message.saaj.SAAJFactory.readAsSOAPMessage(SAAJFactory.java:292) at com.sun.xml.ws.api.message.saaj.SAAJFactory.readAsSAAJ(SAAJFactory.java:222) at com.sun.xml.ws.api.message.saaj.SAAJFactory.read(SAAJFactory.java:211) at com.sun.xml.ws.message.AbstractMessageImpl.toSAAJ(AbstractMessageImpl.java:236) at com.sun.xml.ws.api.message.MessageWrapper.readAsSOAPMessage(MessageWrapper.java:176) at com.sun.xml.ws.handler.SOAPMessageContextImpl.getMessage(SOAPMessageContextImpl.java:85) at com.mirth.connect.connectors.ws.LoggingSOAPHandler.handleMessage(LoggingSOAPHandler.java:62) at com.mirth.connect.connectors.ws.LoggingSOAPHandler.handleMessage(LoggingSOAPHandler.java:29) at com.sun.xml.ws.handler.HandlerProcessor.callHandleMessage(HandlerProcessor.java:297) at com.sun.xml.ws.handler.HandlerProcessor.callHandlersRequest(HandlerProcessor.java:140) at com.sun.xml.ws.handler.ServerSOAPHandlerTube.callHandlersOnRequest(ServerSOAPHandlerTube.java:138) at com.sun.xml.ws.handler.HandlerTube.processRequest(HandlerTube.java:127) at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:1136) at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:1050) at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:1019) at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:877) at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:419) at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:868) at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:422) at com.sun.xml.ws.transport.http.server.WSHttpHandler.handleExchange(WSHttpHandler.java:113) at com.sun.xml.ws.transport.http.server.WSHttpHandler.handle(WSHttpHandler.java:97) at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:98) at jdk.httpserver/sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:82) at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:101) at jdk.httpserver/sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:871) at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:98) at jdk.httpserver/sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:847) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) at java.base/java.lang.Thread.run(Thread.java:1583) Caused by: javax.xml.soap.SOAPException: Unable to create SAAJ meta-factory: Provider com.sun.xml.internal.messaging.saaj.soap.SAAJMetaFactoryImpl not found at javax.xml.soap.SAAJMetaFactory.getInstance(SAAJMetaFactory.java:112) at javax.xml.soap.MessageFactory.newInstance(MessageFactory.java:150) at com.sun.xml.ws.api.message.saaj.SAAJFactory.createMessageFactory(SAAJFactory.java:250) at com.sun.xml.ws.api.message.saaj.SAAJFactory.getMessageFactory(SAAJFactory.java:103) at com.sun.xml.ws.api.SOAPVersion.getMessageFactory(SOAPVersion.java:221) ... 30 more
Hi, DrexMad, thanks for participating in our forum.
Hola,
Disculpad por el inglés, el español es mi idioma nativo.
Sigo con este problema, he probado a importar el jar de saaj pero no ha funcionado, además de copiar el contenido del fichero java9+...options dentro de mcservice.options, y tampoco.
He probado actualizando Mirth, y nada, sin embargo, instalando limpio desde 0 en otro PC sí que me ha funcionado, la cosa es que no tengo control absoluto sobre la máquina que estoy ejecutándolo, la versión de Java es la correcta y todo lo demás funciona sin problema.
Adjunto el log de mirth:
ERROR 2024-05-15 13:32:25,407 [pool-32-thread-1] com.sun.xml.ws.transport.http.HttpAdapter:javax.xml.soap.SOAPException: Unable to create SAAJ meta-factory: Provider com.sun.xml.internal.messaging.saaj.soap.SAAJMetaFactoryImpl not found
java.lang.Error: javax.xml.soap.SOAPException: Unable to create SAAJ meta-factory: Provider com.sun.xml.internal.messaging.saaj.soap.SAAJMetaFactoryImpl not found
at com.sun.xml.ws.api.SOAPVersion.getMessageFactory(SOAPVersion.java:223)
at com.sun.xml.ws.api.message.saaj.SAAJFactory.readAsSOAPMessage(SAAJFactory.java:292)
at com.sun.xml.ws.api.message.saaj.SAAJFactory.readAsSAAJ(SAAJFactory.java:222)
at com.sun.xml.ws.api.message.saaj.SAAJFactory.read(SAAJFactory.java:211)
at com.sun.xml.ws.message.AbstractMessageImpl.toSAAJ(AbstractMessageImpl.java:236)
at com.sun.xml.ws.api.message.MessageWrapper.readAsSOAPMessage(MessageWrapper.java:176)
at com.sun.xml.ws.handler.SOAPMessageContextImpl.getMessage(SOAPMessageContextImpl.java:85)
at com.mirth.connect.connectors.ws.LoggingSOAPHandler.handleMessage(LoggingSOAPHandler.java:62)
at com.mirth.connect.connectors.ws.LoggingSOAPHandler.handleMessage(LoggingSOAPHandler.java:29)
at com.sun.xml.ws.handler.HandlerProcessor.callHandleMessage(HandlerProcessor.java:297)
at com.sun.xml.ws.handler.HandlerProcessor.callHandlersRequest(HandlerProcessor.java:140)
at com.sun.xml.ws.handler.ServerSOAPHandlerTube.callHandlersOnRequest(ServerSOAPHandlerTube.java:138)
at com.sun.xml.ws.handler.HandlerTube.processRequest(HandlerTube.java:127)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:1136)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:1050)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:1019)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:877)
at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:419)
at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:868)
at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:422)
at com.sun.xml.ws.transport.http.server.WSHttpHandler.handleExchange(WSHttpHandler.java:113)
at com.sun.xml.ws.transport.http.server.WSHttpHandler.handle(WSHttpHandler.java:97)
at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:98)
at jdk.httpserver/sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:82)
at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:101)
at jdk.httpserver/sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:871)
at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:98)
at jdk.httpserver/sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:847)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: javax.xml.soap.SOAPException: Unable to create SAAJ meta-factory: Provider com.sun.xml.internal.messaging.saaj.soap.SAAJMetaFactoryImpl not found
at javax.xml.soap.SAAJMetaFactory.getInstance(SAAJMetaFactory.java:112)
at javax.xml.soap.MessageFactory.newInstance(MessageFactory.java:150)
at com.sun.xml.ws.api.message.saaj.SAAJFactory.createMessageFactory(SAAJFactory.java:250)
at com.sun.xml.ws.api.message.saaj.SAAJFactory.getMessageFactory(SAAJFactory.java:103)
at com.sun.xml.ws.api.SOAPVersion.getMessageFactory(SOAPVersion.java:221)
... 30 more
Gracias de antemano por la posible ayuda.
Hola @DrexMad,
Lo primero muchas gracias por participar en nuestro foro. En cuanto al error que estas comentando parece que es un BUG todavía abierto en el github de nextgen connect para las versiones 4.4.1 y 4.4.2.
No obstante, si quieres mantener actualizada la versión de Mirth Connect existen algunos "workarounds" que podrías usar:
- Desmarcar las dependencias del canal, editando el mismo bajo la pestaña Summary/Set Dependecies/
- Marcar "Load Parent-first" en la pestaña Resources dentro del menu Settings
- Añadir la siguiente linea al fichero mcservice.vmoptions o mcserver.vmoptions, en función del que estés utilizando
- -Djavax.xml.ws.spi.Provider=com.sun.xml.ws.spi.ProviderImpl
Coméntanos si te sirvieron estas indicaciones.
Muchas gracias.
Hola, @imontoro , en primer lugar, muchas gracias por la ayuda.
He probado a desmarcar las dependencias del canal y añadir la línea al fichero de options, pero no ha funcionado, se mantiene el mismo error.
Ví que era un BUG pero entendí que solo afecta a las versiones a partir de la 4.4.1, de hecho, hice un rollback a la instalación y estoy actualmente corriendo sobre un Mirth 3.8.1, intentando hacer funcionar el WS antes de actualizar dado que en la 4.5 no me fue posible que funcionara de ninguna manera....
Quedo a la espera de ver si alguien más puede iluminarme con posibles soluciones en lo que voy probando lo que encuentro.
De nuevo gracias de antemano a cualquiera que ofrezca alternativas.
Saludos.
