URLアクセスチェックツール

 下のJavaアプリケーションは、 コマンドラインで指定したURLにHTTPでアクセスできるかどうかをチェックするツールです。 これをcronなどで自動的に実行させることで、Webサーバの簡単な監視を行うことができます。

package sample.tools;
import java.io.*;
import java.net.*;

/**
 * 指定したURLにHTTPでアクセスできるかどうかをチェックする、
 * コマンドライン・アプリケーションです。
 * 主にWebアプリケーションのトップページURLに対して使い、
 * そのWebアプリケーションサーバが応答するかどうかを確認するために使います。
 */
public class URLAccessChecker {
    /* URLからコンテンツを読むときのエンコーディング。現在はシフトJISのみ対応 */
    private static final String encoding = "Shift_JIS";

    /**
     * 指定されたURLに接続できるかチェックします。
     * @param urlstr チェックするURL
     * @return 接続できたら真、そうでなければ偽
     */
    private static boolean check(String urlstr) {
        URL url;
        try {
            url = new URL(urlstr);
        } catch (MalformedURLException ex) {
            System.out.println("cannot access to " + urlstr + ":\n" + ex.toString());
            ex.printStackTrace();
            return false;
        }
        try {
            BufferedReader reader =
                new BufferedReader(new InputStreamReader(url.openStream(), encoding));
            int len = 0;
            while (true) {
                String buf = reader.readLine();
                if (buf == null)
                    break;
                len += buf.length();
            }
            reader.close();
            System.out.println("read (" + len + " bytes).");
        } catch (IOException ex2) {
            System.out.println("cannot read stream from " + urlstr + ":\n" + ex2.toString());
            ex2.printStackTrace();
            return false;
        }
        return true;
    }

    /**
     * コマンドラインアプリケーションのメイン
     * @param args 引数。1個だけ持つことを想定し、[0]は接続できるかどうかをチェックするURLです。
     */
    public static void main(String[] args) {
        if (args.length != 1) {
            System.err.println("usage: URLAccessChecker URL");
            System.exit(1);
        }
        String url = args[0];
        boolean result = URLAccessChecker.check(url);
        if(result){
            System.out.println("We can access the URL " + url + ".");
        } else {
            System.out.println("URL " + url + " is down.");
            System.exit(2);
        }
    }
}

Java kowaza Top

(first uploaded 2004/03/14 last updated 2004/03/14, URANO398)

Gポイントポイ活 Amazon Yahoo 楽天

無料ホームページ 楽天モバイル[UNLIMITが今なら1円] 海外格安航空券 海外旅行保険が無料!