Wildfly 10.1.0的ClassNotFoundException:javax.mail.Authenticator
org.apache.commons.mail.MultiPartEmail的创建实例的以下问题occures:Wildfly 10.1.0的ClassNotFoundException:javax.mail.Authenticator
java.lang.NoClassDefFoundError: javax/mail/Authenticator
at mypackage.MyClass.sendMail(MyClass.java:123)
...
Caused by: java.lang.ClassNotFoundException: javax.mail.Authenticator from [Module "org.apache.commons:main" from local module loader @5a4041cc (finder: local module finder @15b3e5b (roots: C:\wildfly-10.1.0.Final\modules,C:\wildfly-10.1.0.Final\modules\system\layers\base))]
的pom.xml包含:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-email</artifactId>
<version>1.3.3</version>
<scope>provided</scope>
</dependency>
wildfly-10.1.0.Final \ modules \ org \ apache \ commons \ main \ commons-email-1.3.3.jar \ org \ apache \ commons \ mail \ MultiPartEmail.class存在,jboss-deployment-structure.xml包含:
<module name="org.apache.commons" />
<system export="true">
<paths>
<path name="javax/api"/>
<path name="javax/activation/api"/>
<path name="javax/mail/api"/>
</paths>
</system>
删除<scope>provided</scope>
。
没有'
对不起,我没有注意到commons-email依赖在pom.xml中发生了两次。删除'
哪个版本的Wildfly?也许这有帮助? http://*.com/questions/31650024/wildfly-9-javax-mail-is-not-working – ozOli
你不应该在jboss-deployment-structure.xml中包含所有这些路径。此外,'javax.activation.api'模块应该已经作为依赖于您的部署的'javaee.api'模块。你在'jboss-deployment-structure.xml'中有模块排除吗? –
@jamesr使用Wildfly 10.1.0。 jboss-deployment-structure.xml中没有模块排除。感谢读完它后的答案,我再次研究了[部署的隐式模块依赖关系](https://docs.jboss.org/author/display/WFLY10/Implicit+module+dependencies+for+deployments)和modules \ system \ layers \ base \ javax \ api \ main \ module.xml,并理解为什么不需要在jboss-deployment-structure.xml中包含那些javax/*路径。 –