grossws
@grossws

Какие существуют варианты передачи параметров в WAR до CDI?

Конфигурация веб-приложения хранится на файловой системе. Как её можно параметризовать, чтобы была возможность задеплоить два одинаковых приложения с разными настройками?



Работающие варианты:

  • параметризация на этапе сборки (например, значением свойства в заранее выбранном файле в CP)
  • параметризация на этапе деплоя в exploded виде (аналогично предыдущему варианту)




Но данные варианты мне кажутся неудобными. Хочется нормальной конфигурации в runtime.



Из того, что не работает:

  • JNDI — полноценный контекст доступен после деплоя приложения, на этапе CDI фактически недоступен
  • Использование context path — Servlet Listener'ы запускаются после деплоя веб-приложения (аналогичен инжект с помощью @ContextPath в JBoss Solder)




Среда развертывания — JBoss AS7. У кого есть мысли по этому поводу?
  • Вопрос задан
  • 2723 просмотра
Решения вопроса 1
grossws
@grossws Автор вопроса
Нашел забавный способ, но, к сожалению, платформо-специфичный. JBoss AS 7 использует URL вида vfs:/content/some.war/WEB-INF/some.file для ресурсов, находящихся в WAR'е.

Для получения этого URL проще всего воспользоваться аннотацией @Resource из JBoss Solder. При желании всегда можно взглянуть на имплементацию, чтобы увидеть какие класслоадеры используются для получения URL ресурса.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@vkushni
Java SSE
задача легко решается с помощью maven profiles, разные файлы, разные context root, фильтрация иходников итд итп
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы