2011-12-16 11 views
2

私の仕事は、自分のプログラムがサーバー上で正常に動作しているかどうかをチェックすることです。このシナリオは次のようなものです。連続して実行中のプログラムにURLが送信され、それが正常に実行されている場合は、ステータスのOKで返信する。私はそれを行う方法を理解することができません。誰も説明することができます。URLが送信されたときにxml応答を返信する

+0

アプリケーションがWebサーバにデプロイまたはそれは単なるですされていますJavaプログラム?それが前者の場合は、パラメータを受け取り、200でOKに応答するサーブレットなどを書くだけです。アプリケーションの場合は、ローカルマシンで行うようにJschを使用してURLを渡して応答を探します。 – Nishant

+0

これはWebサーバーにデプロイされようとしています。私に例を挙げてもらえますか?それは助けになるでしょう – Rookie

+0

hmm ...もっと明確にするようお願いします。あなたはクライアント側のコードを書いていますか?つまり、あなたのサーバーにURLをpingするソフトウェアですか?またはサーバー側にコードを書きたいと思っていますか? – Nishant

答えて

2

OK、あなたのアプリケーションに何らかの健康チェックページを書きたいと思っています。だからここに行く。あなたのweb.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); 

    } 
} 

次の行を追加します。

<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

+0

こんにちは、これを試して、懸念のために感謝します。 – Rookie

関連する問題