package com.fp.frontend.servlet;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.StringWriter;
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.io.IOUtils;
import org.apache.commons.lang.StringEscapeUtils;
import com.fp.frontend.controller.alfresco.AlfrescoController;
/**
* Servlet que se encarga de abrir la ayuda
*
* @author WPA
*/
@WebServlet(name = "HelpServlet", urlPatterns = {"/HelpServlet"})
public class HelpServlet extends HttpServlet {
private static final long serialVersionUID = 6934418044442466664L;
private boolean shuttingDown = false;
//Access methods for shuttingDown
protected synchronized void setShuttingDown(boolean flag) {
shuttingDown = flag;
}
protected synchronized boolean isShuttingDown() {
return shuttingDown;
}
/**
* Processes requests for both HTTP
* GET and
* POST methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
OutputStream outputStream = response.getOutputStream();
response.setContentType("text/html");
try {
response.setHeader("Pragma", "no-cache");
String module = request.getParameter("cmodule");
String transaction = request.getParameter("ctransaction");
// String version = request.getParameter("version");
String path = request.getParameter("path");
String name = "cm:help_"+module+"_"+transaction+".pdf";
InputStream inputStream = AlfrescoController.getDocument(name, path);
response.setContentType("application/pdf");
if (inputStream != null) {
IOUtils.copy(inputStream, outputStream);
IOUtils.closeQuietly(inputStream);
IOUtils.closeQuietly(outputStream);
outputStream.flush();
} else {
PrintWriter printWriter = new PrintWriter(outputStream);
printWriter.println("");
printWriter.println("
" + StringEscapeUtils.escapeHtml(mensaje) + ""); printWriter.println(""); printWriter.println(""); printWriter.close(); } finally { outputStream.close(); } } /** * Handles the HTTP *
POST method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP
* GET method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
processRequest(request, response);
}
/**
* Método que devuelve la excepcion como tal
*
* @param ex
* @return
*/
public String getStackTrace(Throwable ex) {
try {
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
if (ex.getCause() != null) {
ex.getCause().printStackTrace(pw);
} else {
ex.printStackTrace(pw);
}
String data = sw.toString();
pw.close();
return data;
} catch (Exception e) {
return null;
}
}
}