1

ローカル ホスト:8080 への URL 接続を作成し、JBOSS サーバーを使用して 200 ~ 209 の http 応答コードを確認しました。

public class Welcome extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

response.setContentType("text/html");
 PrintWriter pw = response.getWriter();
URL url = new URL("http://localhost:8080");
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection.setRequestMethod("GET");
connection.connect();

int code = connection.getResponseCode();
System.out.println("code=="+code);
if (code>=200 && code <= 209){

       pw.println("<h1>Welcome....</h1>");
       pw.println("<p>Service is accessable</p>");


    }
else 

{System.out.println("service is denied");}
    }}

HTTP 応答コードが 200 ~ 209 以外の場合、または接続できない場合は、次の手順を実行する必要があります。

1) Jboss サービスが実行中の場合は、再起動します。

2) Jboss サービスが実行されていない場合は、開始します。

ここで、上記の2つの手順を実行するために、サーバーが実行されているかどうかをプログラムで知る方法を知りたい..助けてください..ありがとう

4

2 に答える 2

2

タイムアウト (サーバーがまったく実行されていない) が発生したときに発生する IOException をキャッチする必要があります。

このようなもの:

public class Welcome extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

response.setContentType("text/html");
 PrintWriter pw = response.getWriter();
URL url = new URL("http://localhost:8080");

try {
    HttpURLConnection connection = (HttpURLConnection)url.openConnection();
} catch (IOException ex) {
    // (probably) service is not running 
    // start service
    return;
}

connection.setRequestMethod("GET");
connection.connect();

int code = connection.getResponseCode();
System.out.println("code=="+code);
if (code>=200 && code <= 209){

       pw.println("<h1>Welcome....</h1>");
       pw.println("<p>Service is accessable</p>");


    }
else 

{System.out.println("service is denied");}
    }}
于 2013-04-06T10:38:51.160 に答える
1

これはすでに議論されていることだと思います。そのために例外をキャッチする必要があります。あなたはこのようなことを調べたいかもしれません

于 2013-04-06T10:44:17.813 に答える