View Javadoc
1   package de.mxro.webapiexample.internal.services;
2   
3   import java.io.IOException;
4   
5   import javax.servlet.ServletException;
6   import javax.servlet.http.HttpServlet;
7   import javax.servlet.http.HttpServletRequest;
8   import javax.servlet.http.HttpServletResponse;
9   
10  
11  /**
12   * <p>This service can be used to check if the server can be reached.
13   * <p>Upon a GET request, it will return a JSON document which reports the status of the server.
14   * <p>Upon a HEAD request, it will return the status 200.
15   * 
16   * @author Max
17   *
18   */
19  public class HealthServlet extends HttpServlet {
20  
21  	private static final long serialVersionUID = 1L;
22  
23  	/**
24  	 * The time when this servlet was initialized.
25  	 */
26  	private long serverStartedAt;
27  	
28  	@Override
29  	protected void doHead(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
30  		response.setStatus(HttpServletResponse.SC_OK);
31  	}
32  
33  	@Override
34  	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
35  		assert serverStartedAt != -1;
36  		
37  		response.setContentType("application/json");
38  		response.setStatus(HttpServletResponse.SC_OK);
39  		response.getWriter().println("{ \"running\": true}");
40  		
41  	}
42  
43  	
44  	
45  	@Override
46  	public void init() throws ServletException {
47  		serverStartedAt = System.currentTimeMillis();
48  	}
49  
50  	public HealthServlet() {
51  		super();
52  		serverStartedAt = -1;
53  	}
54  	
55  	
56  	
57  	
58  	
59  }