Web service receiver http status 500 error - javax.xml.soap.SOAPException: Unable to create SAAJ meta-factory #6202
Replies: 4 comments 21 replies
-
This issue sounds familiar. I searched and you already found the hits on GitHub. I did not find any hits on the forums (google for I posted to Slack to give some visibility - https://mirthconnect.slack.com/archives/C02SW0K4D/p1716298090048329 |
Beta Was this translation helpful? Give feedback.
-
Thanks. Sample channels to replicate this here: web service receiver issue channel extracts.zip |
Beta Was this translation helpful? Give feedback.
-
I had to add this to even start your listener channel (as a custom resource). After that seems OK on Mirth 4.5. |
Beta Was this translation helpful? Give feedback.
-
Hello! |
Beta Was this translation helpful? Give feedback.
-
I'm having a problem porting a channel using a web service receiver source to a new server and moving from MC3.2 to 4.4.2. The request (from a Mirth web service sender on a different box) reaches the new server - I see a 'javax.xml.soap.SOAPException: Unable to create SAAJ meta-factory' in the receiver dashboard and logs, but no message is ever seen in the receiver channel dashboard. The sending server sees a http status 500 error (ie. it doesn't appear to be a connectivity issue). It looks like missing java classes, but everything is pretty standard so I'm not sure what.
Original is running Mirth Connect 3.2, java 1.8.0_25 on windows server 2012.
New server is running MC 4.4.2, java 21.0 (JDK not JRE, although 1.8.0_351 is installed), windows server 2019
Web service listener is using the default class com.mirth.connect.connectors.ws.DefaultAcceptMessage
I also encountered this bug, which seems to be a related jax-ws issue: custom-lib folder needs to be empty for web service listener channel to start
There is another thread on this github 5761, but no solution, over a year since replies and they're using openjdk.
I've tried adding saaj-impl.jar as a custom lib as suggested here: https://www.studytonight.com/post/solved-unable-to-create-saaj-metafactory-provider-saajmetafactoryimpl-not-found but no difference - I thought it'd at least give me a different missing dependency, but no difference so not sure that's having any effect.
I've also checked that the java 9+ config is applied to mcserver/service.vmoptions - all done, but I wondered if a new entry along those lines might get jax-ws working in java 9+ ?
Any suggestions for what to try next greatly appreciated.
Full exception is:
ERROR 2024-05-16 13:46:37.064 [pool-101-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:63) ~[?:?] at com.mirth.connect.connectors.ws.LoggingSOAPHandler.handleMessage(LoggingSOAPHandler.java:30) ~[?:?] 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 com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:98) ~[jdk.httpserver:?] at sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:82) ~[jdk.httpserver:?] at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:101) ~[jdk.httpserver:?] at sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:871) ~[jdk.httpserver:?] at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:98) ~[jdk.httpserver:?] at sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:847) ~[jdk.httpserver:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?] at 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
Beta Was this translation helpful? Give feedback.
All reactions