Alterado para devolver XML conforma solicitação
[simdecs.git] / src / java / org / ufcspa / simdecs / comunicacao / MetodoSelecionaCaso.java
1 /*\r
2  * To change this template, choose Tools | Templates\r
3  * and open the template in the editor.\r
4  */\r
5 package org.ufcspa.simdecs.comunicacao;\r
6 \r
7 import java.io.BufferedInputStream;\r
8 import java.io.IOException;\r
9 import java.io.PrintWriter;\r
10 import java.net.MalformedURLException;\r
11 import java.net.URL;\r
12 import java.net.URLConnection;\r
13 import javax.persistence.EntityManager;\r
14 import javax.persistence.EntityManagerFactory;\r
15 import javax.persistence.Persistence;\r
16 import javax.servlet.ServletException;\r
17 import javax.servlet.http.HttpServlet;\r
18 import javax.servlet.http.HttpServletRequest;\r
19 import javax.servlet.http.HttpServletResponse;\r
20 import org.ufcspa.simdecs.entidade.ArquivoCaso;\r
21 \r
22 /**\r
23  *\r
24  * @author pbarros\r
25  */\r
26 public class MetodoSelecionaCaso extends HttpServlet {\r
27 \r
28     /**\r
29      * Processes requests for both HTTP\r
30      * <code>GET</code> and\r
31      * <code>POST</code> methods.\r
32      *\r
33      * @param request servlet request\r
34      * @param response servlet response\r
35      * @throws ServletException if a servlet-specific error occurs\r
36      * @throws IOException if an I/O error occurs\r
37      */\r
38     protected void processRequest(HttpServletRequest request, HttpServletResponse response)\r
39             throws ServletException, IOException {\r
40         response.setContentType("text/html;charset=UTF-8");\r
41         PrintWriter out = response.getWriter();\r
42         //String file ;\r
43 \r
44         EntityManagerFactory emf = Persistence.createEntityManagerFactory("simdecsPU");\r
45         EntityManager em = emf.createEntityManager();\r
46         \r
47         URL url = null;\r
48         URLConnection urlConn = null;\r
49         BufferedInputStream buf = null;\r
50         ArquivoCaso arquivo;\r
51         Integer idCaso = Integer.valueOf(request.getParameter("idArquivoCaso"));\r
52         \r
53 //        out.print(request.getParameter("idArquivoCaso"));\r
54         try {\r
55             \r
56             arquivo =  (ArquivoCaso) em.createQuery("select arq from ArquivoCaso as arq where arq.id ="+idCaso)\r
57                                                                             //.setParameter("idC",idCaso)\r
58                                                                             .getSingleResult();\r
59 //            out.println(arquivo.getEndArquivo());\r
60             url = getServletContext().getResource(arquivo.getEndArquivo());\r
61             //set response header\r
62             response.setContentType("text/xml");\r
63             urlConn = url.openConnection();\r
64             //establish connection with URL presenting web.xml\r
65             urlConn.connect();\r
66             buf = new BufferedInputStream(urlConn.getInputStream());\r
67             int readBytes = 0;\r
68             while ((readBytes = buf.read()) != -1)\r
69                 out.write(readBytes);\r
70             } catch (MalformedURLException mue) {\r
71             throw new ServletException(mue.getMessage());\r
72             } catch (IOException ioe) {\r
73             throw new ServletException(ioe.getMessage());\r
74         } finally {            \r
75             out.close();\r
76             buf.close();\r
77         }\r
78     }\r
79 \r
80     // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">\r
81     /**\r
82      * Handles the HTTP\r
83      * <code>GET</code> method.\r
84      *\r
85      * @param request servlet request\r
86      * @param response servlet response\r
87      * @throws ServletException if a servlet-specific error occurs\r
88      * @throws IOException if an I/O error occurs\r
89      */\r
90     @Override\r
91     protected void doGet(HttpServletRequest request, HttpServletResponse response)\r
92             throws ServletException, IOException {\r
93         processRequest(request, response);\r
94     }\r
95 \r
96     /**\r
97      * Handles the HTTP\r
98      * <code>POST</code> method.\r
99      *\r
100      * @param request servlet request\r
101      * @param response servlet response\r
102      * @throws ServletException if a servlet-specific error occurs\r
103      * @throws IOException if an I/O error occurs\r
104      */\r
105     @Override\r
106     protected void doPost(HttpServletRequest request, HttpServletResponse response)\r
107             throws ServletException, IOException {\r
108         processRequest(request, response);\r
109     }\r
110 \r
111     /**\r
112      * Returns a short description of the servlet.\r
113      *\r
114      * @return a String containing servlet description\r
115      */\r
116     @Override\r
117     public String getServletInfo() {\r
118         return "Short description";\r
119     }// </editor-fold>\r
120 }\r