wake-up-neo.net

java.lang.NoClassDefFoundError: javax/mail/MessagingException nicht gelöst

Ich versuche, den Klassenpfad javax.mail zu meinem Klassenpfad hinzuzufügen, aber ich erhalte die folgende Fehlermeldung:

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.

Ich habe in einem anderen Post gelesen, dass es behoben werden könnte, wenn man die Dependecy zur pom.xml hinzufügt, also habe ich es getan:

pom.xml

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

project

Aber ich bekomme immer noch den Fehler .. Kann mir jemand dabei helfen?

6
Rafael Reyes

Auch in der Version 1.4.3 gibt es keine Artefakt-ID namens mail mehr. Wenn Sie 1.4.3 verwenden möchten, sollten Sie diese Abhängigkeit verwenden

<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>mailapi</artifactId>
    <version>1.4.3</version>
</dependency>
7
vanval

Sie sollten das Glas dem Server Tomcat hinzufügen.

  1. Öffnen Sie die Startkonfiguration

    You should open launch configuration

  2. Externes Glas hinzufügen (suchen Sie nach Ihrem E-Mail-Glas)

    Add external jar and look for your email jar

1

Sogar ich hatte einen ähnlichen Fehler. Probieren Sie die folgenden zwei Schritte aus (von denen der erste hier bereits empfohlen wurde): 1. Fügen Sie die Abhängigkeit zu Ihrem pom.xml Hinzu.

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

  1. Wenn dies nicht funktioniert, legen Sie die Datei jar manuell in Ihrem .m2\repository\javax\<folder>\<version>\ - Verzeichnis ab.
0
Manan Shah

Die neueste Version der Java Mail-API ist

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

Bekommen Sie den gleichen Fehler mit dieser Version?

0
Harald Wellmann

Du wirst benutzen maven-dependency-plugin, um Projektabhängigkeiten an einen anderen Ort zu kopieren.

Fügen Sie dies zu pom.xml hinzu

 <plugin>
    <groupId>org.Apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.4</version>
    <configuration>
      <archive>
        <manifest>
        <addClasspath>true</addClasspath>
        <mainClass>com.mkyong.core.App</mainClass>
        <classpathPrefix>dependency-jars/</classpathPrefix>
        </manifest>
      </archive>
    </configuration>
  </plugin>
  <plugin>
    <groupId>org.Apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>2.5.1</version>
    <executions>
      <execution>
        <id>copy-dependencies</id>
        <phase>package</phase>
        <goals>
            <goal>copy-dependencies</goal>
        </goals>
        <configuration>
            <outputDirectory>
                          ${project.build.directory}/dependency-jars/
                    </outputDirectory>
        </configuration>
        </execution>
    </executions>
  </plugin>

Die folgende Manifestdatei wird generiert. Die Projektabhängigkeiten werden nach {project}/target/dependency-jars/kopiert.

manifest-Version: 1.0
Built-By: mkyong
Build-Jdk: 1.6.0_35
Class-Path: dependency-jars/log4j-1.2.17.jar
Created-By: Apache Maven
Main-Class: com.mkyong.core.App
Archiver-Version: Plexus Archiver

Das hat bei mir funktioniert. Quelle: MKyong.com

0

Diese Klasse war in allen Versionen von Javamail vorhanden, die ich jemals verwendet habe. Natürlich haben Sie keine Javamail-JAR (s) in Ihrem CLASSPATH, wie bei jeder anderen ClassNotFoundException.

0
user207421

Sie haben den Klassenpfad mithilfe von maven gemischt und manuell Referenzen in Eclipse hinzugefügt. 

Deaktivieren Sie die "Maven-Natur", machen Sie eine mvn Eclipse:clean-Anweisung, um Ihr Projekt und convert it to maven project zu aktualisieren, und versuchen Sie es erneut.

Zur Klarstellung: Wo haben Sie die Mail-API in pom hinzugefügt? unter <dependecies> oder unter <dependecyManagement?

0
Jens

der javax/mail/MessagingException existiert bereits in Version 1.4. Ich denke, das ist nur ein Assembly-Problem in der IDE. Das Aktualisieren der POM-Abhängigkeiten und das Überprüfen des Artefakts, das IDE aufbaut, sollte ausreichend sein.

0
fateddy