サーバー(Tomcat)の稼働状況を定期的に監視したい.スタンドアローンアプリでやっている.定期的に(30分ごとに)サーバー監視プログラムを呼び出したい...ジャワ
質問する
354 次
3 に答える
0
Nagiosをチェックしてください。これはオープン ソースの監視サービスであり、Java API も提供します。これは、サーバーを監視する最良の方法です。
しかし、Nagios の実装には多少の努力が必要です。それがあなたの選択ではない場合は、ScheduledExecutorservice を選択してください。
于 2013-04-24T12:32:04.550 に答える
0
これを行う方法はたくさんありますが、この種のことには Selenium をお勧めします。 http://docs.seleniumhq.org/projects/webdriver/
サーバーが応答するかどうかを確認するだけでなく、正しいコンテンツが表示されたかどうかを確認することもできます。
http://docs.seleniumhq.org/docs/03_webdriver.jsp#introducing-the-selenium-webdriver-api-by-example
package org.openqa.selenium.example;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.WebDriverWait;
public class Selenium2Example {
public static void main(String[] args) {
while (1){
test();
Thread.sleep(30L*60L*1000L); //sleep for 30 mins
}
}
public static void test(){
// Create a new instance of the Firefox driver
// Notice that the remainder of the code relies on the interface,
// not the implementation.
WebDriver driver = new FirefoxDriver();
// And now use this to visit Google
driver.get("http://www.google.com");
// Alternatively the same thing can be done like this
// driver.navigate().to("http://www.google.com");
// Find the text input element by its name
WebElement element = driver.findElement(By.name("q"));
// Enter something to search for
element.sendKeys("Cheese!");
// Now submit the form. WebDriver will find the form for us from the element
element.submit();
// Check the title of the page
System.out.println("Page title is: " + driver.getTitle());
// Google's search is rendered dynamically with JavaScript.
// Wait for the page to load, timeout after 10 seconds
(new WebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() {
public Boolean apply(WebDriver d) {
return d.getTitle().toLowerCase().startsWith("cheese!");
}
});
// Should see: "cheese! - Google Search"
System.out.println("Page title is: " + driver.getTitle());
//Close the browser
driver.quit();
}
}
于 2013-04-24T12:34:14.583 に答える