java.lang.NoClassDefFoundError: could not initialize class javax.E-mail.internet.InternetAddress

Ich bin versucht, senden Sie eine E-Mail mit der JavaMail API. Hier ist mein code auf der servlet:

package com.lsp.web;

import com.lsp.service.Mailer;
import javax.ejb.EJB;
import javax.mail.MessagingException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet(name = "contact", urlPatterns = {"/contact"})
public class ContactServlet extends SpringInjectedServlet {
@EJB
private Mailer emailBean;

@Override
public void init() throws ServletException {

}

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    doPost(req, resp);
}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    String customerEmail = req.getParameter("email");
    String subject = req.getParameter("subject");
    String body = req.getParameter("message");

    String error = null;
    String succMess = null;

    try {
        javax.mail.internet.InternetAddress ia = new javax.mail.internet.InternetAddress(customerEmail);
        ia.validate();
        emailBean.send(customerEmail, subject, body);
        req.setAttribute("succMessage", succMess);
        req.getRequestDispatcher("sent.jsp").forward(req, resp);

    } catch (javax.mail.internet.AddressException ae) {
        error = "您指出的邮箱地址不存在";
        req.setAttribute("errorMessage", error);
        req.getRequestDispatcher("contact.jsp").forward(req, resp);
    }
    catch (MessagingException mex) {
        error = "发送失败";
        req.setAttribute("errorMessage", error);
        req.getRequestDispatcher("contact.jsp").forward(req, resp);
    }
}
}

In der Zeile, wo ich prüfen, ob der Benutzer die Adresse wo:

javax.mail.internet.InternetAddress ia = new javax.mail.internet.InternetAddress(customerEmail);
ia.validate();

Bekam ich eine Ausnahme.
java.lang.NoClassDefFoundError: could not initialize class javax.E-mail.internet.InternetAddress

In pom.xml ich fügte diese Zeilen:

<!--JavaMail API-->
    <dependency>
        <groupId>javax.mail</groupId>
        <artifactId>javax.mail-api</artifactId>
        <version>1.5.1</version>
    </dependency>

    <!--EJB-->
    <dependency>
        <groupId>javax.ejb</groupId>
        <artifactId>ejb-api</artifactId>
        <version>3.0</version>
    </dependency>

Ich bin mit Tomcat.
Könnte mir jemand sagen, warum dies passiert und wie kann ich das Problem lösen.

Danke.

  • Sie scheinen zu fehlen die entsprechenden Java-EE-Bibliotheken.
  • Wie sind Sie mit der Kompilierung und Ausführung von code? Sie müssen sicherstellen, dass Sie alle notwendigen Bibliotheken in den classpath, nicht nur bei der Erstellung, aber auch wenn der code ausgeführt wird.
  • Wie werden Sie den Aufbau und die Ausführung Ihrer Anwendung? Sind Sie mit Maven? Wenn dem so ist, würde es wahrscheinlich helfen, wenn Sie zeigen Sie uns Ihre pom.xml Datei.
  • Ja, und ich bin mit maven zu.
  • Ist javamail auf Ihrem classpath?
  • Ja, ich habe C:\Users\Weiqian Wu\Desktop\javax.mail.jar zum Klassenpfad in der Klima-Variablen.
  • Nicht auf die Klima-Variablen, es sollte auf den classpath des Containers
  • Ich habe soeben meine container.
  • Also, wenn Sie wählen Sie Ihr Projekt aus -> Rechte Maustaste ->Build-Pfad -> klicken Sie auf " Configure Build Path , sehen Sie mail.jar in Ihren Bibliotheken?wenn ja, dann sollten Sie vielleicht überprüfen Sie den Wert der customerEmail der Sie immer von request-Parametern. (vorausgesetzt, Sie sind mit Eclipse)
  • Ich bin mit IntelliJ obwohl. Ich Hinzugefügt activation.jar und setzen Sie in Abhängigkeit von pom.xml. Es gibt mir immer noch java.lang.NoClassDefFoundError: could not initialize class javax.E-mail.internet.InternetAddress. Kann mir jemand sagen, was falsch gelaufen ist?

InformationsquelleAutor user3014926 | 2014-01-14
Schreibe einen Kommentar