Skip to content

Instantly share code, notes, and snippets.

@apetresc
Created September 21, 2011 22:54
Show Gist options
  • Select an option

  • Save apetresc/1233553 to your computer and use it in GitHub Desktop.

Select an option

Save apetresc/1233553 to your computer and use it in GitHub Desktop.
Jetty health servlet
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class HealthServlet extends HttpServlet {
private static final Logger logger = LoggerFactory.getLogger(HealthServlet.class);
private static volatile boolean isHealthy = false;
public synchronized static void setHealthy() {
isHealthy = true;
}
public synchronized static void setUnhealthy() {
isHealthy = false;
}
public synchronized static boolean isHealthy() {
return isHealthy;
}
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) {
if (isHealthy()) {
response.setStatus(HttpServletResponse.SC_OK);
logger.info("Responded to health check: " + HttpServletResponse.SC_OK);
} else {
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
logger.info("Responded to health check: " + HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
}
}
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response) {
if ("true".equalsIgnoreCase(request.getParameter("health"))) {
setHealthy();
logger.info("Set healthy due to POST request");
} else {
setUnhealthy();
logger.info("Set unhealthy due to POST request");
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment