Commit | Line | Data |
---|---|---|
78f5d120 FT |
1 | package dolda.jsvc.j2ee; |
2 | ||
3 | import dolda.jsvc.*; | |
104fa785 FT |
4 | import java.lang.reflect.*; |
5 | import java.util.*; | |
78f5d120 FT |
6 | import java.io.*; |
7 | import javax.servlet.http.*; | |
104fa785 | 8 | import javax.servlet.*; |
78f5d120 FT |
9 | |
10 | public class Servlet extends HttpServlet { | |
c9837b5e | 11 | private ThreadContext tg; |
104fa785 | 12 | |
4b8346e1 | 13 | public void init(ServletConfig cfg) throws ServletException { |
104fa785 FT |
14 | Properties sprop = new Properties(); |
15 | try { | |
16 | InputStream pi = Servlet.class.getClassLoader().getResourceAsStream("jsvc.properties"); | |
17 | try { | |
18 | sprop.load(pi); | |
19 | } finally { | |
20 | pi.close(); | |
21 | } | |
22 | } catch(IOException e) { | |
23 | throw(new Error(e)); | |
24 | } | |
25 | String clnm = (String)sprop.get("jsvc.bootstrap"); | |
26 | if(clnm == null) | |
27 | throw(new ServletException("No JSvc bootstrapper specified")); | |
c9837b5e | 28 | Class<?> bc; |
104fa785 | 29 | try { |
c9837b5e | 30 | bc = Class.forName(clnm); |
104fa785 FT |
31 | } catch(ClassNotFoundException e) { |
32 | throw(new ServletException("Invalid JSvc bootstrapper specified", e)); | |
104fa785 | 33 | } |
4b8346e1 | 34 | tg = new ThreadContext(null, "JSvc service", new J2eeContext(cfg), bc); |
104fa785 | 35 | } |
78f5d120 | 36 | |
104fa785 | 37 | public void destroy() { |
c9837b5e | 38 | tg.shutdown(); |
78f5d120 FT |
39 | } |
40 | ||
41 | public void service(HttpServletRequest req, HttpServletResponse resp) { | |
42 | try { | |
43 | req.setCharacterEncoding("UTF-8"); | |
44 | resp.setCharacterEncoding("UTF-8"); | |
45 | } catch(UnsupportedEncodingException e) { | |
46 | throw(new Error(e)); | |
47 | } | |
48 | Request rr = new J2eeRequest(getServletConfig(), req, resp); | |
c9837b5e | 49 | RequestThread w = tg.respond(rr); |
104fa785 FT |
50 | w.start(); |
51 | try { | |
52 | w.join(); | |
53 | } catch(InterruptedException e) { | |
54 | w.interrupt(); | |
55 | return; | |
56 | } | |
78f5d120 FT |
57 | } |
58 | } |