Web application status check example

Click here to download eclipse supported ZIP file



This is app.properties properties file and these properties are used in the application.




ContextRoot1=127.0.0.1:5050
ContextRoot2=127.0.0.1:8080
ContextRoot3=127.0.0.1:7070


This is ServerStatus.java file having the source code to execute business logic.



 

    
package com.cv.java.server.info;

import java.io.IOException;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;

/**
 @author Chandra Vardhan
 *
 */
public class ServerStatus {

  private static Properties appProperties = new Properties();

  private static List<String> servers = new ArrayList<String>();

  static {
    appProperties = readPropertiesFile();
    setValues(appProperties);
  }

  private static void setValues(final Properties properties) {
    if (properties != null) {
      String contextRoot1 = properties.getProperty("ContextRoot1");
      if (contextRoot1 != null && !contextRoot1.trim().isEmpty()) {
        servers.add("ContextRoot1:" + contextRoot1);
      }
      String contextRoot2 = properties.getProperty("ContextRoot2");
      if (contextRoot2 != null && !contextRoot2.trim().isEmpty()) {
        servers.add("ContextRoot2:" + contextRoot2);
      }
      String contextRoot3 = properties.getProperty("ContextRoot3");
      if (contextRoot3 != null && !contextRoot3.trim().isEmpty()) {
        servers.add("ContextRoot3:" + contextRoot3);
      }
    }

  }

  /**
   
   */
  public ServerStatus() {
  }

  /**
   @param args
   */
  public static void main(String[] args) {

    ServerStatus serverStatus = new ServerStatus();
    for (String server : servers) {
      String info = serverStatus.statusCheck(server);
      System.out.println(info);
    }
  }

  private String statusCheck(String server) {
    String[] ipPorts = server.split(":");
    String contextRoot = ipPorts[0];
    String ipAdd = ipPorts[1];
    int port = Integer.parseInt(ipPorts[2]);
    boolean status = isServerUp(ipAdd, port);
    String info = "";
    if (status) {
      info = contextRoot + " application is running at IPAddress : " + ipAdd + " and port : " + port;
    else {
      info = contextRoot + " application is NOT available at IPAddress : " + ipAdd + " and port : " + port;;
    }
    return info;
  }

  public boolean isServerUp(final String ipAddress, final int port) {
    boolean isUp = false;
    try {
      Socket socket = new Socket(ipAddress, port);
      // Server is up
      isUp = true;
      socket.close();
    catch (IOException e) {
      // Server is down
      isUp = false;
    }
    return isUp;
  }

  private static Properties readPropertiesFile() {
    Properties props = new Properties();
    try {
      System.out.println("Reading properties file : app.properties!!!");
      props.load(ServerStatus.class.getClassLoader().getResourceAsStream("app.properties"));
    catch (Exception e) {
      System.err.println("Problem while reading properties file!!!");
    }
    return props;
  }
  
}


This is pom.xml file having the entries of dependency jars and information to build the application .



	
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.cv.java.server.info</groupId> <artifactId>WebApplicationStatusCheck</artifactId> <version>1.0</version> </project>


This is log4j.properties file having the entries for logging the information into the console/file.




#By default enabling Console appender
# Root logger option
log4j.rootLogger=INFO, stdout

# Redirect log messages to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-5p [%c]:%L -->> %m%n

# Redirect log messages to a log file
#log4j.appender.file=org.apache.log4j.RollingFileAppender
#log4j.appender.file.File=C:\servlet-application.log
#log4j.appender.file.MaxFileSize=5MB
#log4j.appender.file.MaxBackupIndex=10
#log4j.appender.file.layout=org.apache.log4j.PatternLayout
#log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

No comments:

Post a Comment