Я хочу закончить все мои сеансы в Tomcat. Мы тестируем наш продукт под Fitnesse, и некоторые сеансы остаются, а конец сеанса вызывает зависимость между тестами. Я делаю это вручную с помощью следующего кода, но некоторые сеансы остаются (я могу проверить его с помощью http://localhost:8080/manager/html/list url)
public static void expireAllSessions() {
String[] applications = { "a", "b", "c", "d", "e" };
for (String application : applications) {
try {
expireAllSessions(application);
} catch (Exception e) {
logger.error(e);
}
}
}
private static void expireAllSessions(final String application) throws Exception {
// cf doc http://hc.apache.org/httpclient-3.x/authentication.html
HttpClient client = new HttpClient();
client.getParams().setAuthenticationPreemptive(true);
Credentials userPassword = new UsernamePasswordCredentials("tomcat", "tomcat");
client.getState().setCredentials(AuthScope.ANY, userPassword);
String url = "http://localhost:8080/manager/html/expire";
NameValuePair[] parametres = new NameValuePair[] {
new NameValuePair("path", "/" + application),
new NameValuePair("idle", "0")
};
HttpMethod method = new GetMethod(url);
method.setQueryString(parametres);
client.executeMethod(method);
}
Есть ли способ сделать это более эффективно и немедленно без оставшегося сеанса?