Задать вопрос
grossws
@grossws

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

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



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

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




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



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

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




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

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

Похожие вопросы
Сбер Москва
от 300 000 до 350 000 ₽
DIGITAL SECTOR Краснодар
от 250 000 до 450 000 ₽
Сбер Санкт-Петербург
До 350 000 ₽