summaryrefslogtreecommitdiff
path: root/orktrack/src/net/sf/oreka/orktrack/CommandServlet.java
blob: 69d3c48d0e2bf7f41093c986f245f5ba52443a06 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
/*
 * Oreka -- A media capture and retrieval platform
 * 
 * Copyright (C) 2005, orecx LLC
 *
 * http://www.orecx.com
 *
 * This program is free software, distributed under the terms of
 * the GNU General Public License.
 * Please refer to http://www.gnu.org/copyleft/gpl.html
 *
 */

package net.sf.oreka.orktrack;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.oreka.OrkException;
import net.sf.oreka.OrkObjectFactory;
import net.sf.oreka.messages.AsyncMessage;
import net.sf.oreka.messages.SimpleResponseMessage;
import net.sf.oreka.messages.SyncMessage;
import net.sf.oreka.messages.test.TestMessage;
import net.sf.oreka.serializers.ServletRequestSerializer;
import net.sf.oreka.serializers.SingleLineSerializer;

import org.apache.log4j.Logger;

public class CommandServlet extends HttpServlet {
	
	static Logger logger = Logger.getLogger(CommandServlet.class);		
	
    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws IOException, ServletException
    {
		//#####OrkObjectFactory.instance().registerOrkObject(new TestMessage());
		OrkTrack.refreshInMemoryObjects();
		
		ServletRequestSerializer ser = new ServletRequestSerializer();
		
		try {
			SyncMessage obj = (SyncMessage)ser.deSerialize(request);
			AsyncMessage rsp = obj.process();
			SingleLineSerializer ser2 = new SingleLineSerializer();
			String req = ser2.serialize(obj);
			logger.debug("Request: " + req);			
			PrintWriter out = response.getWriter();
			String resp = ser2.serialize(rsp);
			logger.debug("Reponse: " + resp);
			out.println(resp);
		}
		catch (Exception e) {
			logger.debug("Request: " + request.getQueryString());
			SimpleResponseMessage rsp = new SimpleResponseMessage();
			rsp.setComment(e.getMessage());
			rsp.setSuccess(false);
			SingleLineSerializer ser2 = new SingleLineSerializer();
			PrintWriter out = response.getWriter();
			try {
				String resp = ser2.serialize(rsp);
				logger.debug("Reponse: " + resp);
				out.println(resp);
			}
			catch (Exception ae) {
				logger.error("Error:" + ae.getMessage());
			}
		}
		
//		SingleLineSerializer ser2 = new SingleLineSerializer();
//		try {
//			OrkObject obj = ser.deSerialize(request);
//	        response.setContentType("text/html");
//	        PrintWriter out = response.getWriter();
//	        out.println("<html>");
//	        out.println("<head>");
//	        out.println("<title>Sucess</title>");
//	        out.println("</head>");
//	        out.println("<body>");
//	        out.println("<h1>");
//	        out.println(ser2.serialize(obj));
//	        out.println("</h1>");
//	        out.println("</body>");
//	        out.println("</html>");
//		}
//		catch (OrkException e) {
//	        response.setContentType("text/html");
//	        PrintWriter out = response.getWriter();
//	        out.println("<html>");
//	        out.println("<head>");
//	        out.println("<title>Error</title>");
//	        out.println("</head>");
//	        out.println("<body>");
//	        out.println("<h1>");
//	        out.println(e.getMessage());
//	        out.println("</h1>");
//	        out.println("</body>");
//	        out.println("</html>");
//		}
    	
//		logger.log(Level.INFO, request.getPathInfo());
//		logger.log(Level.INFO, request.getRequestURL());
//		logger.log(Level.INFO, request.getQueryString());
//    	logger.log(Level.INFO, request.getParameter("toto"));
//    	logger.log(Level.INFO, request.getParameter("titi"));  
//    	
//        response.setContentType("text/html");
//        PrintWriter out = response.getWriter();
//        out.println("<html>");
//        out.println("<head>");
//        out.println("<title>Hello World!</title>");
//        out.println("</head>");
//        out.println("<body>");
//        out.println("<h1>Hello World!</h1>");
//        out.println("</body>");
//        out.println("</html>");
    }
}