When i call a EJB method from the servlet page i am getting the following error..
org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [info.java.tips.servlet.MyServlet2] in context with path [/MyFirstWebApplication] threw exception
java.lang.NullPointerException
at info.java.tips.servlet.MyServlet2.doPost(MyServlet2.java:33)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
Please help to get resolve the issue
Thanks,
What I have tried:
@WebServlet("/MyServlet2")
public class MyServlet2 extends HttpServlet {
@EJB(mappedName="MailSenderBean")
private static MailSenderBean mailsenderbean;
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String toEmail = request.getParameter("email");
String subject = request.getParameter("subject");
String message = request.getParameter("message");
String fromemail = "xxxxxxxxxx";
String password ="xxxxxxxxxx";
try(PrintWriter out = response.getWriter())
{
mailsenderbean.sendMail(fromemail, toEmail, subject, message, password);
out.println("mail sent");
}
}
}
my code inside EJB method
public void sendMail(String fromEmail,String toEmail,String subject,String message,String password )
{
Properties prop = System.getProperties();
prop.put("mail.smtp.host", "smtp.gmail.com");
prop.put("mail.smtp.auth", "true");
prop.put("mail.smtp.port", "465");
prop.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
prop.put("mail.smtp.socketFactory.port", "465");
prop.put("mail.smtp.socketFactory.fallback", "false");
Session session = Session.getDefaultInstance(prop,null);
session.setDebug(true);
Message mailmessage = new MimeMessage(session);
try
{
mailmessage.setFrom(new InternetAddress(fromEmail));
mailmessage.setRecipient(Message.RecipientType.TO, new InternetAddress(toEmail));
mailmessage.setText(message);
mailmessage.setSubject(subject);
Transport transport = session.getTransport("smtp");
transport.connect("smtp.gmail.com", "xxxxxxxx","xxxxxxx");
transport.sendMessage(mailmessage, mailmessage.getAllRecipients());
}
catch (Exception e)
{
e.printStackTrace();
}
}