comparison src/main/java/de/mpiwg/indexmeta/web/servlet/JSONInterface.java @ 7:bc57f2660b0f

implementation of web service
author Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
date Fri, 12 Apr 2013 17:48:42 +0200
parents
children
comparison
equal deleted inserted replaced
5:7d231e4e86e5 7:bc57f2660b0f
1 package de.mpiwg.indexmeta.web.servlet;
2
3 import java.io.IOException;
4 import java.io.PrintWriter;
5 import java.io.UnsupportedEncodingException;
6 import java.util.Map;
7 import java.util.Map.Entry;
8
9 import javax.servlet.Servlet;
10 import javax.servlet.ServletException;
11 import javax.servlet.http.HttpServletRequest;
12 import javax.servlet.http.HttpServletResponse;
13
14 import org.apache.commons.lang.StringUtils;
15 import org.apache.log4j.Logger;
16 import org.json.JSONObject;
17
18 import de.mpiwg.indexmeta.web.servlet.methods.JSONGetCtxFromDB;
19
20 public class JSONInterface extends AbstractServlet implements Servlet{
21 private static final long serialVersionUID = 1L;
22
23 private static Logger logger = Logger.getLogger(JSONInterface.class);
24
25 private HttpServletRequest request;
26 private HttpServletResponse response;
27
28 private void initialize(HttpServletRequest request, HttpServletResponse response){
29
30 this.request = request;
31 this.response = response;
32 this.response.setContentType("application/json; charset=UTF-8");
33
34 try {
35 System.out.println(request.getCharacterEncoding());
36 request.setCharacterEncoding("UTF-8");
37 } catch (UnsupportedEncodingException e) {
38 e.printStackTrace();
39 }
40 }
41
42 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
43 this.doIt(request, response);
44 }
45
46 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
47 this.doIt(request, response);
48 }
49
50 public void doIt(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
51 long start = System.currentTimeMillis();
52 this.initialize(request, response);
53
54 String method = request.getParameter(METHOD);
55
56 logger.info("Starting " + paramsToString(request.getParameterMap()));
57
58
59 if(StringUtils.isNotEmpty(method)){
60 try{
61
62 if(method.equals(getCtxFromDB)){
63 JSONGetCtxFromDB.execute(null, request, response);
64 }else if(method.equals("")){
65
66 }
67
68 }catch (Exception e) {
69 logger.error(e.getMessage(), e);
70 PrintWriter out = response.getWriter();
71 out.print(e.getMessage());
72 response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
73 }
74 }else{
75 response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Parameter method can not be null.");
76 }
77
78 long end = System.currentTimeMillis();
79 logger.info("Finish [time=" + (end-start) + "] " + paramsToString(request.getParameterMap()));
80 }
81
82 private String paramsToString(Map<String, String[]> paramMap){
83 StringBuilder sb = new StringBuilder();
84
85 for(Entry<String, String[]> entry : paramMap.entrySet()){
86 sb.append(entry.getKey() + "=[");
87 int count = 0;
88 for(String value : entry.getValue()){
89 if(count > 0){
90 sb.append(", ");
91 }
92 sb.append(value);
93 count++;
94 }
95 sb.append("] ");
96 }
97
98 return sb.toString();
99 }
100 }