Maven Wildfly 10.1.0 ClassNotFoundException:javax.mail.Authenticator

Maven Wildfly 10.1.0 ClassNotFoundException:javax.mail.Authenticator,maven,jboss,jakarta-mail,wildfly-10,classnotfound,Maven,Jboss,Jakarta Mail,Wildfly 10,Classnotfound,创建org.apache.commons.mail.MultiPartEmail实例时出现以下问题: java.lang.NoClassDefFoundError: javax/mail/Authenticator at mypackage.MyClass.sendMail(MyClass.java:123) ... Caused by: java.lang.ClassNotFoundException: javax.mail.Authenticator from [Module "or

创建org.apache.commons.mail.MultiPartEmail实例时出现以下问题:

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>
<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>

org.apache.commons
公用电子邮件
1.3.3
假如
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包含:

<dependency>
  <groupId>org.apache.commons</groupId>
  <artifactId>commons-email</artifactId>
  <version>1.3.3</version>
  <scope>provided</scope>
</dependency>
<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>


删除
提供的

而不删除
提供的
同样的问题也会发生。很抱歉,我没有注意到pom.xml中出现了两次commons电子邮件依赖项。删除提供的
解决了问题。wildfly-10.1.0.Final\modules\org\apache\commons\main\module.xml是很久以前创建的,没有被怀疑,但缺少javax.activation.api和javax.mail.api依赖项。哪个版本的wildfly?也许这有帮助?您根本不需要在jboss-deployment-structure.xml中包含这些路径。另外,
javax.activation.api
模块应该已经作为依赖项包含在
javaee.api
模块的部署中。您的
jboss部署结构.xml
中有任何模块排除吗?@jamesr am使用Wildfly 10.1.0。jboss-deployment-structure.xml中没有模块排除。感谢阅读后给出的答案,我再次研究了[部署的隐式模块依赖关系]()以及modules\system\layers\base\javax\api\main\module.xml,并且已经理解了为什么不需要在jboss-deployment-structure.xml.@JamesR.Perkins the wildfly-10.1.0中包含这些javax/*路径。Final\modules\org\apache\commons\main\module.xml是很久以前创建的,没有被怀疑,但是缺少javax.activation.api和javax.mail.api依赖项。