我的任务是检查我的程序是否在服务器上正常运行。场景是这样的:一个 URL 被发送到持续运行的程序,如果它正在运行,它应该回复状态 OK很好。我无法理解如何做的过程。任何人都可以解释一下。
最佳答案
好的,我假设您想为您的应用程序编写某种健康检查页面。就这样吧。
package test.naishe.so;
public class HealthCheck extends HttpServlet {
private static final long serialVersionUID = 940861886429788526L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
int response = HttpServletResponse.SC_INTERNAL_SERVER_ERROR;
boolean checkServices = true;
//optional: assumming you wanted to do health check on various services (eg. DB service) and have a utility class for that
checkServices = CheckServices.checkAll();
if(checkServices)
response = HttpServletResponse.SC_OK;
String out =
"<healthCheck>" +
"<services>" +
(checkServices?"OK":"ERROR")
"</services>" +
"</healthCheck>"
;
resp.setStatus(response);
resp.getWriter().println(out);
}
}
在您的 web.xml 中添加以下内容:
<servlet>
<servlet-name>healthCheck</servlet-name>
<servlet-class>test.naishe.so.HealthCheck</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>healthCheck</servlet-name>
<url-pattern>/check_health</url-pattern>
</servlet-mapping>
您可以从 <base_url>/check_health
访问此页面在你的本地机器上,http://localhost[:port][/app_name]/check_health
关于java - 发送 url 时发送回 xml 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8530564/