Click here to Skip to main content
15,867,765 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
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:

Java
@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

Java
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();
      }

  }
Posted
Updated 8-May-18 8:16am
v2
Comments
Richard MacCutchan 7-May-18 15:34pm    
According to the error message the exception occurs on line 33, but you only have 25 lines in the question.
khaleelsyed 8-May-18 2:57am    
i have posted specific code block.when i remove the below line

mailsenderbean.sendMail(fromemail, toEmail, subject, message, password);

error does not occur.
Richard MacCutchan 8-May-18 2:59am    
Well that'a one way of fixing errors. But it might be better if you find out which variable reference is null, and why.
khaleelsyed 8-May-18 14:16pm    
I have updated the question with code block inside EJB. Please refer main question.
Richard MacCutchan 8-May-18 14:35pm    
The message "java.lang.NullPointerException at info.java.tips.servlet.MyServlet2.doPost(MyServlet2.java:33)" clear tells you that the error is on line 33, but we do not know which line that refers to.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900