2016-09-13 7 views
0

Создание экземпляра org.apache.commons.mail.MultiPartEmail следующая проблема встречается,: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> 
+0

Какая версия Wildfly? Может быть, это помогает? http://stackoverflow.com/questions/31650024/wildfly-9-javax-mail-is-not-working – ozOli

+0

Вам не нужно включать эти пути вообще в jboss-deployment-structure.xml. Также модуль 'javax.activation.api' уже должен быть включен как зависимость от вашего развертывания с помощью модуля' javaee.api'. У вас есть исключения модулей в вашем 'jboss-deployment-structure.xml'? –

+0

@jamesr использует Wildfly 10.1.0. Исключений модуля в jboss-deployment-structure.xml нет. Спасибо за ответ после его чтения, я снова изучил [Неявные зависимости модулей для развертываний] (https://docs.jboss.org/author/display/WFLY10/Implicit+module+dependencies+for+deployments) и модули \ system \ layers \ base \ javax \ api \ main \ module.xml и поняли, почему нет необходимости включать эти javax/* пути в jboss-deployment-structure.xml. –

ответ

0

Удалить <scope>provided</scope>.

+0

Без ' предоставляется' та же проблема. –

+0

Извините, я не заметил, что в почтовом ящике pom.xml была зарегистрирована 2-процентная зависимость. Удаление ' предоставлено' решила проблему. Файл wildfly.10.1.0.Final \ modules \ org \ apache \ commons \ main \ module.xml был создан давно и не подозревался, но отсутствовал зависимости javax.activation.api и javax.mail.api. –