phax / phase4

phase4 - AS4 client and server for integration into existing systems. Specific support for Peppol and CEF eDelivery built-in.
Apache License 2.0
154 stars 47 forks source link

Implementation of JAXB-API has not been found on module path or classpath. #91

Closed MakakWasTaken closed 2 years ago

MakakWasTaken commented 2 years ago

I am getting the following error when I try to invoke AS4BidirectionalClientHelper.sendAS4UserMessageAndReceiveAS4SignalMessage

2022-07-22 11:25:36.567 ERROR 8168 --- [nio-8080-exec-1] com.helger.jaxb.JAXBContextCacheKey      : Failed to create JAXB context for package 'com.helger.phase4.ebms3header' using ClassLoader jdk.internal.loader.ClassLoaders$AppClassLoader@512ddf17: Implementation of JAXB-API has not been found on module path or classpath.
2022-07-22 11:25:36.571 ERROR 8168 --- [nio-8080-exec-1] c.h.p.s.AbstractAS4UserMessageBuilder    : Exception sending AS4 user message

com.helger.phase4.util.Phase4Exception: Wrapped Phase4Exception
    at com.nomnom.communicationserver.entsog.Phase4ENTSOGSender$AbstractENTSOGUserMessageBuilder.mainSendMessage(Phase4ENTSOGSender.java:212) ~[classes/:na]
    at com.helger.phase4.sender.AbstractAS4MessageBuilder.sendMessage(AbstractAS4MessageBuilder.java:598) ~[phase4-lib-1.3.9.jar:1.3.9]
    at com.helger.phase4.sender.AbstractAS4UserMessageBuilder.sendMessageAndCheckForReceipt(AbstractAS4UserMessageBuilder.java:712) ~[phase4-lib-1.3.9.jar:1.3.9]
    at com.helger.phase4.sender.AbstractAS4UserMessageBuilder.sendMessageAndCheckForReceipt(AbstractAS4UserMessageBuilder.java:681) ~[phase4-lib-1.3.9.jar:1.3.9]
    at com.nomnom.communicationserver.communication.AS4Helper.sendMessage(AS4Helper.java:82) ~[classes/:na]
    at com.nomnom.communicationserver.servlet.SenderServlet.doPost(SenderServlet.java:91) ~[classes/:na]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:681) ~[tomcat-embed-core-9.0.63.jar:4.0.FR]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) ~[tomcat-embed-core-9.0.63.jar:4.0.FR]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.63.jar:9.0.63]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.63.jar:9.0.63]
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.63.jar:9.0.63]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.63.jar:9.0.63]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.63.jar:9.0.63]
    at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.20.jar:5.3.20]
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.20.jar:5.3.20]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.63.jar:9.0.63]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.63.jar:9.0.63]
    at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.20.jar:5.3.20]
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.20.jar:5.3.20]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.63.jar:9.0.63]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.63.jar:9.0.63]
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.20.jar:5.3.20]
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.20.jar:5.3.20]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.63.jar:9.0.63]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.63.jar:9.0.63]
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) ~[tomcat-embed-core-9.0.63.jar:9.0.63]
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.63.jar:9.0.63]
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) ~[tomcat-embed-core-9.0.63.jar:9.0.63]
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) ~[tomcat-embed-core-9.0.63.jar:9.0.63]
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.63.jar:9.0.63]
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.63.jar:9.0.63]
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) ~[tomcat-embed-core-9.0.63.jar:9.0.63]
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) ~[tomcat-embed-core-9.0.63.jar:9.0.63]
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.63.jar:9.0.63]
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890) ~[tomcat-embed-core-9.0.63.jar:9.0.63]
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743) ~[tomcat-embed-core-9.0.63.jar:9.0.63]
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.63.jar:9.0.63]
    at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.63.jar:9.0.63]
    at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.63.jar:9.0.63]
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.63.jar:9.0.63]
    at java.base/java.lang.Thread.run(Thread.java:829) ~[na:na]
Caused by: java.lang.IllegalArgumentException: Failed to create JAXB context for package 'com.helger.phase4.ebms3header' using ClassLoader jdk.internal.loader.ClassLoaders$AppClassLoader@512ddf17
    at com.helger.jaxb.JAXBContextCacheKey._createFromPackageAndClassLoader(JAXBContextCacheKey.java:165) ~[ph-jaxb-10.1.6.jar:10.1.6]
    at com.helger.jaxb.JAXBContextCacheKey.createJAXBContext(JAXBContextCacheKey.java:202) ~[ph-jaxb-10.1.6.jar:10.1.6]
    at com.helger.jaxb.JAXBContextCache.lambda$new$0(JAXBContextCache.java:81) ~[ph-jaxb-10.1.6.jar:10.1.6]
    at com.helger.commons.cache.MappedCache.getFromCache(MappedCache.java:337) ~[ph-commons-10.1.6.jar:10.1.6]
    at com.helger.jaxb.JAXBContextCache.getFromCache(JAXBContextCache.java:124) ~[ph-jaxb-10.1.6.jar:10.1.6]
    at com.helger.jaxb.JAXBContextCache.getFromCache(JAXBContextCache.java:166) ~[ph-jaxb-10.1.6.jar:10.1.6]
    at com.helger.jaxb.builder.AbstractJAXBBuilder.getJAXBContext(AbstractJAXBBuilder.java:164) ~[ph-jaxb-10.1.6.jar:10.1.6]
    at com.helger.jaxb.builder.AbstractWritingJAXBBuilder.createMarshaller(AbstractWritingJAXBBuilder.java:80) ~[ph-jaxb-10.1.6.jar:10.1.6]
    at com.helger.jaxb.builder.JAXBWriterBuilder.createMarshaller(JAXBWriterBuilder.java:232) ~[ph-jaxb-10.1.6.jar:10.1.6]
    at com.helger.jaxb.builder.JAXBWriterBuilder.write(JAXBWriterBuilder.java:298) ~[ph-jaxb-10.1.6.jar:10.1.6]
    at com.helger.jaxb.IJAXBWriter.write(IJAXBWriter.java:346) ~[ph-jaxb-10.1.6.jar:10.1.6]
    at com.helger.jaxb.IJAXBWriter.getAsDocument(IJAXBWriter.java:415) ~[ph-jaxb-10.1.6.jar:10.1.6]
    at com.helger.phase4.messaging.domain.AbstractAS4Message.getAsSoapDocument(AbstractAS4Message.java:107) ~[phase4-lib-1.3.9.jar:1.3.9]
    at com.helger.phase4.client.AS4ClientUserMessage.buildMessage(AS4ClientUserMessage.java:642) ~[phase4-lib-1.3.9.jar:1.3.9]
    at com.helger.phase4.client.AbstractAS4Client.sendMessageWithRetries(AbstractAS4Client.java:458) ~[phase4-lib-1.3.9.jar:1.3.9]
    at com.helger.phase4.sender.AS4BidirectionalClientHelper.sendAS4UserMessageAndReceiveAS4SignalMessage(AS4BidirectionalClientHelper.java:132) ~[phase4-lib-1.3.9.jar:1.3.9]
    at com.nomnom.communicationserver.entsog.Phase4ENTSOGSender$AbstractENTSOGUserMessageBuilder.mainSendMessage(Phase4ENTSOGSender.java:190) ~[classes/:na]
    ... 40 common frames omitted
Caused by: javax.xml.bind.JAXBException: Implementation of JAXB-API has not been found on module path or classpath.
    at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:168) ~[jaxb-api-2.4.0-b180830.0359.jar:2.3.0]
    at javax.xml.bind.ContextFinder.find(ContextFinder.java:355) ~[jaxb-api-2.4.0-b180830.0359.jar:2.3.0]
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:508) ~[jaxb-api-2.4.0-b180830.0359.jar:2.3.0]
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:465) ~[jaxb-api-2.4.0-b180830.0359.jar:2.3.0]
    at com.helger.jaxb.JAXBContextCacheKey._createFromPackageAndClassLoader(JAXBContextCacheKey.java:155) ~[ph-jaxb-10.1.6.jar:10.1.6]
    ... 56 common frames omitted
Caused by: java.lang.ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) ~[na:na]
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[na:na]
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ~[na:na]
    at javax.xml.bind.ServiceLoaderUtil.nullSafeLoadClass(ServiceLoaderUtil.java:122) ~[jaxb-api-2.4.0-b180830.0359.jar:2.3.0]
    at javax.xml.bind.ServiceLoaderUtil.safeLoadClass(ServiceLoaderUtil.java:155) ~[jaxb-api-2.4.0-b180830.0359.jar:2.3.0]
    at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:165) ~[jaxb-api-2.4.0-b180830.0359.jar:2.3.0]
    ... 60 common frames omitted

2022-07-22 11:25:36.575  INFO 8168 --- [nio-8080-exec-1] c.n.c.communication.AS4Helper            : ENTSOG send result: TRANSPORT_ERROR

My pom.xml file has the following included:

    <dependency>
      <groupId>javax.xml.bind</groupId>
      <artifactId>jaxb-api</artifactId>
      <version>2.4.0-b180830.0359</version>
    </dependency>
phax commented 2 years ago

Hi, this is easy to fix. Please add this to your pom.xml:

<dependency>
  <groupId>com.sun.xml.bind</groupId>
  <artifactId>jaxb-impl</artifactId>
</dependency>

If you need a version, please use 2.3.6