phax / as2-lib

A generic Java AS2 library, servlet and server
107 stars 43 forks source link

NoClassDefFoundError: javax/mail/internet/MimeBodyPart #147

Closed MakakWasTaken closed 5 months ago

MakakWasTaken commented 1 year ago

I recently started updating my program to a newer version, this included moving from javax.mail to jakarta.mail.

I am now using the following versions:

The below error occurs when calling the following function:

certificateFactory.initDynamicComponent(aSession, null);
java.lang.NoClassDefFoundError: javax/mail/internet/MimeBodyPart
    at java.base/java.lang.ClassLoader.defineClass1(Native Method) ~[na:na]
    at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1012) ~[na:na]
    at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150) ~[na:na]
    at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862) ~[na:na]
    at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760) ~[na:na]
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681) ~[na:na]
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639) ~[na:na]
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[na:na]
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[na:na]
    at com.helger.as2lib.util.AS2Helper$SingletonHolder.<clinit>(AS2Helper.java:96) ~[as2-lib-5.1.0.jar:5.1.0]
    at com.helger.as2lib.util.AS2Helper.getCryptoHelper(AS2Helper.java:105) ~[as2-lib-5.1.0.jar:5.1.0]
    at com.helger.as2lib.cert.AbstractCertificateFactory.createNewKeyStore(AbstractCertificateFactory.java:190) ~[as2-lib-5.1.0.jar:5.1.0]
    at com.helger.as2lib.cert.AbstractCertificateFactory.initEmptyKeyStore(AbstractCertificateFactory.java:250) ~[as2-lib-5.1.0.jar:5.1.0]
    at com.helger.as2lib.cert.CertificateFactory.reinitKeyStore(CertificateFactory.java:98) ~[as2-lib-5.1.0.jar:5.1.0]
    at com.helger.as2lib.cert.AbstractCertificateFactory.initDynamicComponent(AbstractCertificateFactory.java:201) ~[as2-lib-5.1.0.jar:5.1.0]
    at com.nomnom.communicationserver.entsog.AS2ReceiveXServletHandler.createAS2Session(AS2ReceiveXServletHandler.java:84) ~[classes/:na]
    at com.helger.as2servlet.AbstractAS2ReceiveBaseXServletHandler.onServletInit(AbstractAS2ReceiveBaseXServletHandler.java:90) ~[as2-servlet-5.1.0.jar:5.1.0]
    at com.helger.as2servlet.AbstractAS2ReceiveXServletHandler.onServletInit(AbstractAS2ReceiveXServletHandler.java:63) ~[as2-servlet-5.1.0.jar:5.1.0]
    at com.helger.xservlet.AbstractXServlet.lambda$init$1(AbstractXServlet.java:289) ~[ph-xservlet-10.1.1.jar:10.1.1]
    at com.helger.xservlet.handler.XServletHandlerRegistry.forEachHandlerThrowing(XServletHandlerRegistry.java:215) ~[ph-xservlet-10.1.1.jar:10.1.1]
    at com.helger.xservlet.AbstractXServlet.init(AbstractXServlet.java:289) ~[ph-xservlet-10.1.1.jar:10.1.1]
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:944) ~[tomcat-embed-core-10.1.8.jar:10.1.8]
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:808) ~[tomcat-embed-core-10.1.8.jar:10.1.8]
    at org.springframework.boot.web.embedded.tomcat.TomcatEmbeddedContext.load(TomcatEmbeddedContext.java:84) ~[spring-boot-3.1.0.jar:3.1.0]
    at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[na:na]
    at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) ~[na:na]
    at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) ~[na:na]
    at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276) ~[na:na]
    at java.base/java.util.TreeMap$ValueSpliterator.forEachRemaining(TreeMap.java:3215) ~[na:na]
    at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[na:na]
    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[na:na]
    at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[na:na]
    at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[na:na]
    at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:na]
    at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) ~[na:na]
    at org.springframework.boot.web.embedded.tomcat.TomcatEmbeddedContext.lambda$deferredLoadOnStartup$0(TomcatEmbeddedContext.java:67) ~[spring-boot-3.1.0.jar:3.1.0]
    at org.springframework.boot.web.embedded.tomcat.TomcatEmbeddedContext.doWithThreadContextClassLoader(TomcatEmbeddedContext.java:108) ~[spring-boot-3.1.0.jar:3.1.0]
    at org.springframework.boot.web.embedded.tomcat.TomcatEmbeddedContext.deferredLoadOnStartup(TomcatEmbeddedContext.java:66) ~[spring-boot-3.1.0.jar:3.1.0]
    at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.performDeferredLoadOnStartup(TomcatWebServer.java:305) ~[spring-boot-3.1.0.jar:3.1.0]
    at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:216) ~[spring-boot-3.1.0.jar:3.1.0]
    at org.springframework.boot.web.servlet.context.WebServerStartStopLifecycle.start(WebServerStartStopLifecycle.java:44) ~[spring-boot-3.1.0.jar:3.1.0]
    at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:178) ~[spring-context-6.0.9.jar:6.0.9]
    at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:356) ~[spring-context-6.0.9.jar:6.0.9]
    at java.base/java.lang.Iterable.forEach(Iterable.java:75) ~[na:na]
    at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:155) ~[spring-context-6.0.9.jar:6.0.9]
    at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:123) ~[spring-context-6.0.9.jar:6.0.9]
    at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:958) ~[spring-context-6.0.9.jar:6.0.9]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:611) ~[spring-context-6.0.9.jar:6.0.9]
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.1.0.jar:3.1.0]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:733) ~[spring-boot-3.1.0.jar:3.1.0]
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:435) ~[spring-boot-3.1.0.jar:3.1.0]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:311) ~[spring-boot-3.1.0.jar:3.1.0]
    at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:150) ~[spring-boot-3.1.0.jar:3.1.0]
    at com.nomnom.communicationserver.Phase4SpringbootApplication.main(Phase4SpringbootApplication.java:25) ~[classes/:na]
Caused by: java.lang.ClassNotFoundException: javax.mail.internet.MimeBodyPart
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[na:na]
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[na:na]
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[na:na]
    ... 54 common frames omitted

The full context in which it appears is 95% based on this file. The only deviance is that it is adding some partnerships with certificates to the partnership factory.

If any more information is needed please feel free to ask :)

phax commented 1 year ago

Okay, the problem is most likely in the POM.

hth

phax commented 9 months ago

@MakakWasTaken were you able to resolve it?