Каждый запрос пытается создать новые экземпляры Singletons, которые терпят неудачу, потому что они используют Application.get (), который завершается ошибкой:
There is no application attached to current thread default
Тот же код работает в WildFly 8.2 и Wicket 6.20. Итак, две проблемы:
- Каждый поток обработчика запросов работает так, как будто он работает в своей собственной JVM, не разделяя статические поля с другими потоками.
- Каждый поток обработчика запросов после создания исходного создается без него и с приложением.
Минимальный пример:
package com.example.web;
public class SiteConstants
{
public static final String CONTEXT_PATH = WebApp.get().getServletcontext().getContextPath() + "/";
}
Домашняя страница использует
SiteConstants.CONTEXT_PATH
Первый запрос на домашнюю страницу работает. Второй вызов загружается в другой поток и завершается с ошибкой
WebApp.get().getServletcontext().getContextPath() + "/";
потому что WebApp.get () выбрасывает
org.apache.wicket.WicketRuntimeException: There is no application attached to current thread default task-1