2
我的任務是檢查我的程序是否在服務器上運行正常或不是。這種情況是這樣的:一個URL被髮送到正在不斷運行的程序,如果狀態正常,請回復狀態。我無法理解該過程如何執行。可以任何人解釋。當發送一個URL時發送一個XML響應
我的任務是檢查我的程序是否在服務器上運行正常或不是。這種情況是這樣的:一個URL被髮送到正在不斷運行的程序,如果狀態正常,請回復狀態。我無法理解該過程如何執行。可以任何人解釋。當發送一個URL時發送一個XML響應
好的,我假設你想爲你的應用程序寫一些健康檢查頁面。所以在這裏。
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
是您的應用程序部署在Web服務器或者它只是一個普通的Java程序?如果是前者,只需編寫一個servlet或者一些帶參數的響應,然後用200返回OK。如果是應用程序,則可以使用Jsch並像在本地計算機上那樣傳遞URL並查找響應。 – Nishant 2011-12-16 06:33:15
它將被部署在web服務器上。請給我一個例子。這將有幫助 – Rookie 2011-12-16 06:38:55