如何检查 Glassfish DAS 是否以编程方式运行,即使它部署在本地机器或远程机器上?
使用 Java6
我找到了一种方法来检查 DAS 是否启动,而不是 Linux 脚本。通过这种方式,我的应用程序和 DAS 是在同一台机器上还是安装在不同的机器上都没有关系。
public static boolean isUrlReachable(String host) {
String URLName="http://"+host+":4848";
boolean isUp = false;
try {
HttpURLConnection.setFollowRedirects(false);
HttpURLConnection con = (HttpURLConnection) new URL(URLName).openConnection();
con.setRequestMethod("GET");
isUp = (con.getResponseCode() == HttpURLConnection.HTTP_OK);
con.disconnect();
}
catch (Exception e) {
return isUp;
}
return isUp;
}
您可以使用socket
检查您的连接是否正常:
我用这种方式和我一起工作:
private boolean checkConnection(String host, int port) {
try {
Socket socket = new Socket(host, port);
socket.close();
return true;
} catch (IOException e) {
e.printStackTrace();
return false;
}
}
如果创建了套接字,则连接已启动,否则连接已关闭。
这是您通常检查 glassfish 是否启动并运行的方式:
但是由于您想以编程方式运行它,您可以做的是创建一个脚本并使用 java.util.java 从代码中执行该脚本。
try{
Runtime.getRuntime().exec("Path to my script");
}
catch(IOException e) {
System.out.println("exception");
}
如果您使用的是 linux,您还可以为 glassfish 进程创建一个 grep 脚本。