2 * To change this template, choose Tools | Templates
3 * and open the template in the editor.
5 package org.ufcspa.simdecs.comunicacao;
7 import java.io.IOException;
8 import java.io.PrintWriter;
9 import java.io.StringWriter;
10 import java.util.Iterator;
12 import javax.persistence.EntityManager;
13 import javax.servlet.ServletException;
14 import javax.servlet.http.HttpServlet;
15 import javax.servlet.http.HttpServletRequest;
16 import javax.servlet.http.HttpServletResponse;
17 import org.ufcspa.simdecs.util.DbUtil;
23 public abstract class BaseComunicacao extends HttpServlet {
25 protected static String stack2string(Exception e) {
27 StringWriter sw = new StringWriter();
28 PrintWriter pw = new PrintWriter(sw);
29 e.printStackTrace(pw);
30 return "------\r\n" + sw.toString() + "------\r\n";
31 } catch (Exception e2) {
32 return "bad stack2string";
36 protected final void printDebug(String print) {
37 System.out.println(print);
40 protected abstract void executaServico(EntityManager em, HttpServletRequest request, HttpServletResponse response, PrintWriter out) throws Exception;
42 protected void processRequest(HttpServletRequest request, HttpServletResponse response)
43 throws ServletException, IOException {
44 EntityManager em = DbUtil.getInstance().getEntityManager();
46 response.setContentType("text/html;charset=UTF-8");
47 PrintWriter out = response.getWriter();
50 printDebug("------------------------------------------------------------------------------------");
51 printDebug("METODO....: " + this.getClass());
52 printDebug("PARAMETROS: ");
53 Map params = request.getParameterMap();
54 Iterator i = params.keySet().iterator();
58 String key = (String) i.next();
59 String value = ((String[]) params.get( key ))[ 0 ];
60 printDebug(" " + key + ": " + value);
62 printDebug("------------------------------------------------------------------------------------");
66 executaServico(em, request, response, out);
67 } catch(Exception e) {
68 out.println("<xml>" );
69 out.println(" <execucao sucesso=\"nao\" />" );
70 out.println(" <erro metodo=\"" + this.getServletName() + "\">" );
72 Map paramsError = request.getParameterMap();
73 Iterator iError = paramsError.keySet().iterator();
74 StringBuilder parametros = new StringBuilder();
75 while ( iError.hasNext() )
77 String key = (String) iError.next();
78 String value = ((String[]) paramsError.get( key ))[ 0 ];
79 parametros.append(";");
80 parametros.append(key);
81 parametros.append(":");
82 parametros.append(value);
84 out.println(" <parametros descricao=\"" + parametros.substring(1) + "\" />");
85 out.println(" <mensagem erro=\"" + stack2string(e) + "\" />");
86 out.println(" </erro>" );
87 out.println("</xml>" );
95 // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
98 * <code>GET</code> method.
100 * @param request servlet request
101 * @param response servlet response
102 * @throws ServletException if a servlet-specific error occurs
103 * @throws IOException if an I/O error occurs
106 protected void doGet(HttpServletRequest request, HttpServletResponse response)
107 throws ServletException, IOException {
108 processRequest(request, response);
113 * <code>POST</code> method.
115 * @param request servlet request
116 * @param response servlet response
117 * @throws ServletException if a servlet-specific error occurs
118 * @throws IOException if an I/O error occurs
121 protected void doPost(HttpServletRequest request, HttpServletResponse response)
122 throws ServletException, IOException {
123 processRequest(request, response);
127 * Returns a short description of the servlet.
129 * @return a String containing servlet description
132 public String getServletInfo() {
133 return "Short description";