Ссылка: https://developer.android.com/reference/android/app/Dialog#setCancelable (boolean)
setCancelable
[ 110]
Устанавливает, можно ли отменить это диалоговое окно клавишей BACK.
setCanceledOnTouchOutside
public void setCanceledOnTouchOutside (boolean cancel)
Устанавливает, отменяется ли это диалоговое окно при касании за пределами окна. Если установлено значение true, диалоговое окно может быть отменено, если оно еще не установлено.
Необходимо создать отдельную банку (банки) со всеми классами (и все их зависимости), какие экземпляры Вы планируете кэшировать и затем развернуть эту банку, а также ehcache.jar как библиотека (в зависимости от того, какой сервер приложений Вы используете процедуру, могло бы отличаться), в случае Tomcat 6, который означает просто банки копии освобождать папку.
Что происходит, затем то, что ehcache и Ваши доменные классы будут загружены classloader, совместно использованным всеми веб-приложениями, таким образом, экземпляры будут кэшироваться и доступны в памяти.
Зависимости Ваших доменных классов важны, таким образом, необходимо видеть, выполним ли этот подход в проекте. Это могло бы также влиять на способ, которым Вы перезапускаете веб-приложения.
Кроме того, необходимо знать, что кэш и совместное использование не необходимы то же самое. Кэш является оптимизацией. При помещении экземпляра объекта в кэш, он мог бы быть сразу выселен, если, например, кэш не имеет достаточного пространства памяти или конфигурации политики замещения. Так можете быть Вы, должны рассмотреть способ, которым Вы планируете использовать ecache в целом.
Проблема Вашей конфигурации состоит в том, что каждая война будет загружена отдельным ClassLoder и будет два экземпляра Вашего ehcache-сервиса - каждое веб-приложение имеет свою собственную копию сервиса. Можно реализовать сервис кэширования как Веб-сервис (например), и использовать его от war1 и war2.