Обзор проблемы
При запуске теста контейнера, управляемого Arquillian Liberty, указанные переменные среды не разрешаются в файле server.xml.WLPManagedContainer.class можно увидеть при попытке найти server.env, однако работающее приложение во время выполнения с использованием server.env не разрешается во время тестирования.
Ожидаемое поведение
Aфайл server.xml, содержащий, например, и foo = bar, определенный в server.env в каталоге работающего сервера.Должен быть решен во время теста в контейнере.При получении jndiEntry с помощью @Resource (lookup = "env / foo") String foo;должен разрешать бар во время выполнения, а также во время тестирования arquillian. См .: https://github.com/HasseNasse/liberty-arquillian-envvars
Текущее поведение
Сервлет приложения разрешает @Resource (lookup = "env / foo") String foo;запретить во время развертывания приложения.Во время тестирования Arquillian @Resource (lookup = "env / foo") String foo;разрешается в $ {env.foo}, как определено в server.xml.
Протестировано с использованием Java 11 (Azul Zulu) и Java 8 (Azul Zulu + Oracle JDK)
Шаги для воспроизведения
Выполнение теста Арквилиана:
- git clone https://github.com/HasseNasse/liberty-arquillian-envvars.git
- mvn verify
Развертывание приложения
- git clone https://github.com/HasseNasse/liberty-arquillian-envvars.git
- mvn liberty: старт-сервер
- cp target / target / liberty / wlp / user/ серверы / defaultserver / dropins
- Перейдите к http://localhost:9080/net_nazarsit_arq_war/foo