Package br.com.caelum.vraptor.errormail

Source Code of br.com.caelum.vraptor.errormail.ErrorLoggerServlet

package br.com.caelum.vraptor.errormail;

import java.io.IOException;

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 org.apache.commons.mail.EmailException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import br.com.caelum.vraptor.environment.ServletBasedEnvironment;
import br.com.caelum.vraptor.errormail.mail.ErrorMail;
import br.com.caelum.vraptor.errormail.mail.ErrorMailFactory;
import br.com.caelum.vraptor.errormail.mail.ErrorMailer;
import br.com.caelum.vraptor.simplemail.Mailer;
import br.com.caelum.vraptor.simplemail.MailerFactory;

@WebServlet(urlPatterns="/error500", displayName="error-servlet")
public class ErrorLoggerServlet extends HttpServlet {
  private static final long serialVersionUID = -3360854860883666693L;
  private ErrorMailer mailer;
  private ServletBasedEnvironment env;
  private static Logger logger = LoggerFactory.getLogger(ErrorLoggerServlet.class);

  @Override
  public void init() throws ServletException {
    try {
      env = new ServletBasedEnvironment(this.getServletContext());
      Mailer mailer = new MailerFactory(env).getInstance();
      this.mailer = new ErrorMailer(mailer);
    } catch (IOException e) {
      throw new ServletException("Unable to initialize error servlet", e);
    }
  }

  @Override
  public void service(HttpServletRequest req, HttpServletResponse res)
      throws ServletException, IOException {
    try {
      ErrorMail errorMail = new ErrorMailFactory(req, env).build();
      mailer.register(errorMail);
      req.setAttribute("stackTrace", errorMail.getStackTrace());
      req.getRequestDispatcher("/WEB-INF/jsp/error/500.jsp").forward(req, res);
    } catch (EmailException e) {
      logger.error(e.getMessage());
    }
  }
}
TOP

Related Classes of br.com.caelum.vraptor.errormail.ErrorLoggerServlet

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.