2015-02-02 9 views
6

Sto cercando di aggiungere il barattolo javax.mail al mio percorso di classe ma ottengo questo errore:java.lang.NoClassDefFoundError: javax/mail/MessagingException irrisolto

java.lang.NoClassDefFoundError: javax/mail/MessagingException 
    at java.lang.Class.getDeclaredConstructors0(Native Method) 
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2663) 
    at java.lang.Class.getDeclaredConstructors(Class.java:2012) 
    at org.springframework.beans.factory.annotation. 

ho sopra letto in altri post che potrebbe essere risolto aggiungendo il dependecy al pom.xml, così ho fatto:

pom.xml

<dependency> 
    <groupId>javax.mail</groupId> 
    <artifactId>mail</artifactId> 
    <version>1.4.3</version> 
</dependency> 

project

Ma ancora sto ricevendo l'errore .. qualcuno può aiutarmi con questo?

+0

Provare a cancellare il progetto e ricostruirlo. – Jens

+0

@Jent fatto! ma ancora ottengono lo stesso errore. –

risposta

8

Anche con la versione 1.4.3 non esiste più un id artefatto chiamato mail. Se si desidera utilizzare 1.4.3 è necessario utilizzare questa dipendenza

<dependency> 
    <groupId>javax.mail</groupId> 
    <artifactId>mailapi</artifactId> 
    <version>1.4.3</version> 
</dependency> 
+0

Ho inserito questa dipendenza e ho ancora lo stesso errore –

+0

Quando ricevi questo errore? Se stai eseguendo il codice usando tomcat, dovresti controllare se il mail jar è accessibile da tomcat, cioè dovrebbe essere nel war \ WEB-INF \ lib o nella cartella condivisa \ lib. – vanval

+0

Viene visualizzato l'errore all'avvio del server @vanval –

0

La versione più recente delle API Java mail è

<dependency> 
    <groupId>javax.mail</groupId> 
    <artifactId>javax.mail-api</artifactId> 
    <version>1.5.2</version> 
</dependency> 

si ottiene lo stesso errore con questa versione?

+0

ottiene ancora lo stesso errore. controlla la mia modifica per favore. –

0

il javax/mail/MessagingException esiste già nella versione 1.4. Quindi immagino che questo sia solo un problema di assemblaggio all'interno dell'IDE. Aggiornare le dipendenze del pom e controllare l'artefatto che l'IDE accumula dovrebbe essere sufficiente.

+0

controlla la mia modifica. –

+0

già menzionato da altri utenti - la classe non può essere trovata perché potrebbe non essere assemblata dal tuo IDE. Prova a controllare l'artefatto che i tuoi IDE costruiscono. Prova anche a pulire, ricostruire, annullare la distribuzione e distribuire l'applicazione, ecc. – fateddy

0

Questa classe è stata presente in tutte le versioni di Javamail che abbia mai utilizzato. Chiaramente non hai i JAR di Javamail sul tuo CLASSPATH, come per qualsiasi altra ClassNotFoundException.

+0

controlla la mia modifica. –

+0

Non uso quell'IDE, quindi non posso commentare, ma la mia risposta rimane. L'eccezione lo dimostra. – EJP

0

È stato mescolato il classpath utilizzando Maven e riferimenti aggiunti manualmente in eclissi.

Disabilitare la "natura di natura" effettuare un mvn eclipse:clean sulla riga di comando aggiornare il progetto e convert it to maven project e quindi riprovare.

Per clearify: dove hai aggiunto l'email api in pom? sotto <dependecies> o sotto <dependecyManagement?

Problemi correlati