grossws
@grossws

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

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



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

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




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



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

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




Среда развертывания — JBoss AS7. У кого есть мысли по этому поводу?
  • Вопрос задан
  • 2719 просмотров
Решения вопроса 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, фильтрация иходников итд итп
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽