Boa noite,
Estou fazendo um programa em JSP que usa servlet que deveria enviar um email automatico para emails recebidos via uma pagina jsp
Ja inclui as jars activation.jar mail.jar e servlet.jar
Mas o seguinte erro aparece
exception
javax.servlet.ServletException: Error instantiating servlet class fiap.Email
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
java.lang.Thread.run(Unknown Source)
root cause
java.lang.NoClassDefFoundError: javax/mail/Authenticator
java.lang.Class.getDeclaredConstructors0(Native Method)
java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
java.lang.Class.getConstructor0(Unknown Source)
java.lang.Class.newInstance0(Unknown Source)
java.lang.Class.newInstance(Unknown Source)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
java.lang.Thread.run(Unknown Source)
root cause
java.lang.ClassNotFoundException: javax.mail.Authenticator
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1362)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1208)
java.lang.ClassLoader.loadClassInternal(Unknown Source)
java.lang.Class.getDeclaredConstructors0(Native Method)
java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
java.lang.Class.getConstructor0(Unknown Source)
java.lang.Class.newInstance0(Unknown Source)
java.lang.Class.newInstance(Unknown Source)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
java.lang.Thread.run(Unknown Source)
Alguem tem ideia de como resolver isso?
Caso seja util segue o codigo usado no servlet
package chucknorris;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class Email extends HttpServlet{
String para;
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
para = request.getParameter("Email");
Email e = new Email();
e.Email(de, para, assunto, mensagem);
}
private String mailSMTPServer= "smtp.gmail.com";
private String mailSMTPServerPort ="465";
public void Email(String de,String para, String assunto, String mensagem){
Properties p = new Properties();
//Parametros do email
de = "remetende";
para = "destinatario";
assunto = "Teste de Email automatico!";
mensagem = "Teste teste teste";
//inicio de configuracao de proxy, so necessario se proxy
//p.setProperty("proxySet", "true");
//p.setProperty("socksProxyHost", "DIGITAR IP DE SERVIDOR PROXY");
//p.setProperty("socksProxyPort", "DIGITAR PORTA DO PROXY");
p.put("mail.transport.protocol", "smtp");
p.put("mail.smtp.starttls.enable", "true");
p.put("mail.smtp.host", mailSMTPServer);
p.put("mail.smtp.auth", "true");
p.put("mail.user.user", de);
p.put("mail.debug", "true");
p.put("mail.smtp.port", mailSMTPServerPort);
p.put("mail.smtp.socketFactory.port", mailSMTPServerPort);
p.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
p.put("mail.smtp.socketFactory.fallback", "false");
SimpleAuth auth = null;
auth = new SimpleAuth ("conta a ser usada", "senha");
Session session = Session.getDefaultInstance(p, auth);
session.setDebug(true);
Message msg = new MimeMessage(session);
try{
msg.setRecipient(Message.RecipientType.TO, new InternetAddress(para));
msg.setFrom(new InternetAddress(de));
msg.setSubject(assunto);
msg.setContent(mensagem,"text/plain");
}
catch(Exception e){
System.out.println(e.getMessage());
}
Transport t;
try{
t = session.getTransport("smtp");
t.connect(mailSMTPServer, "remetende", "senha");
msg.saveChanges();
t.sendMessage(msg, msg.getAllRecipients());
t.close();
}
catch(Exception e){
System.out.println(e.getMessage());
}
}
}