Bonjour a tous les developpeurs Java Web !
j'ai crée un site internet avec un formulaire de contact. lorsque je clique sur le bouton "envoyer" j'ai l'erreur ci-dessous :
HTTP ERROR 500 Problem accessing /EnvoiMail. Reason: INTERNAL_SERVER_ERROR Caused by: java.lang.NullPointerException at com.swm.monSite.MailDispacherServlet.processRequest(MailDispacherServlet.java:143) at com.swm.monSite.MailDispacherServlet.doPost(MailDispacherServlet.java:188) at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) at com.google.appengine.api.socket.dev.DevSocketFilter.doFilter(DevSocketFilter.java:74) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.appengine.tools.development.ResponseRewriterFilter.doFilter(ResponseRewriterFilter.java:128) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:34) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:63) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:125) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectRequest(DevAppServerModulesFilter.java:366) at com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectModuleRequest(DevAppServerModulesFilter.java:349) at com.google.appengine.tools.development.DevAppServerModulesFilter.doFilter(DevAppServerModulesFilter.java:116) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) at com.google.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:98) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:512) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:938) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
code de mon bean :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 import java.util.Properties; import java.util.logging.Level; import java.util.logging.Logger; import javax.ejb.Stateless; import javax.mail.Message; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; @Stateless public class mailSenderBean { public void sendEmail(String fromEmail, String username, String password, String toEmail, String subject, String message){ try { Properties props = System.getProperties(); props.setProperty("mail.smtp.host", "smtp.gmail.com"); props.setProperty("mail.smtp.auth", "true"); props.setProperty("mail.smtp.port", "465"); props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); props.setProperty("mail.smtp.socketFactory.port", "465"); props.setProperty("mail.smtp.socketFactory.fallback", "false"); Session mailSession = Session.getDefaultInstance(props, null); mailSession.setDebug(true); Message mailMessage = new MimeMessage(mailSession); mailMessage.setFrom(new InternetAddress(fromEmail)); mailMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(toEmail)); mailMessage.setContent(message, "text/html"); mailMessage.setSubject(subject); Transport transport = mailSession.getTransport("smtp"); transport.connect("smtp.gmail.com", username, password); transport.sendMessage(mailMessage, mailMessage.getAllRecipients()); } catch (Exception ex) { Logger.getLogger(mailSenderBean.class.getName()).log(Level.SEVERE, null, ex); } } }
code de ma servlet :
code JSP :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80 import java.io.IOException; import java.io.PrintWriter; import javax.ejb.EJB; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.swm.bean.mailSenderBean; @WebServlet(name = "MailDispacherServlet", urlPatterns = {"/MailDispacherServlet"}) public class MailDispacherServlet extends HttpServlet { @EJB private mailSenderBean mailSender; protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); String toEmail = request.getParameter("email"); String subject = request.getParameter("subject"); String message = request.getParameter("message"); String fromEmail = "xyz@gmail.com"; String username = "xyz"; String password = "gdgdg"; try (PrintWriter out = response.getWriter()) { /* TODO output your page here. You may use following sample code. */ /* appel de notre bean d'envoi de message*/ mailSender.sendEmail(fromEmail, username, password, toEmail, subject, message); //......................................... out.println("<!DOCTYPE html>"); out.println("<html>"); out.println("<head>"); out.println("<title>Status mail !</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1> Status Mail!!!</h1>"); out.println("<b>Votre message a bien été envoyé, nous allons vous contacter le plus tot possible !!!</b><br>"); out.println("Cliquez <a href='email.jsp'>ici</a> pour retournez !!!"); out.println("</body>"); out.println("</html>"); } } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } @Override public String getServletInfo() { return "Short description"; }// </editor-fold> }
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title> contact </title> </head> <body> <form method="post" action="/EnvoiMail"> <table> <tr> <td align="left"><b>Email :</b></td> <td> <input type="email" name="email" size="50" align="left" /> </td> </tr> <tr> <td align="left" ><b>Objet :</b></td> <td> <input type="text" name="subject" size="50"> </td> </tr> <tr> <td ><b>Message : </b></td> <td> <textarea style="margin-top: 0px;" name="message" rows="15" cols="180"></textarea><br> </td> </tr> <tr> <td> <input type="submit" value="Envoyer"> </td> </tr> </table> </form> </body> </html>
Partager