Документация IBM Liberty утверждает, что можно запустить/остановить/управлять сервером Liberty, используя SPI непосредственно из кода. Я хотел бы использовать такую функциональность для создания интеграционных тестов для моих служб REST.Запуск сервера Liberty как встроенный из maven с использованием зависимостей maven
Ссылка на оригинал статьи: http://www.ibm.com/support/knowledgecenter/SSAW57_8.5.5/com.ibm.websphere.wlp.nd.multiplatform.doc/ae/twlp_extend_embed.html?lang=en
Я хочу создать интеграционный тест, что:
1) Start Liberty сервер с моим собственным 'server.xml'. Я хочу предоставить конкретный источник данных и безопасность здесь.
2) Разверните приложение EAR на сервере Liberty.
3) Запустите тесты на сервере REST с гарантией REST.
4) Отменить развертывание приложения и завершить работу сервера Liberty.
В основном я застрял на первом этапе - я не могу запустить сервер, потому что получаю исключение «NoClassDefFoundError: com.ibm.ws.kernel.boot.EmbeddedServerImpl». В приведенной выше ссылке описывается, что нужно использовать ws-server.jar из установки Liberty, но как насчет ссылки на нее из зависимостей maven? Я полагаю, что я могу указать некоторый артефакт от IBM maven repo 'https://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/wasdev/maven/repository/' и использовать его для запуска Liberty в качестве встроенного сервера непосредственно из моих модульных тестов, но я не могу найти, что это за артефакт.
Итак, чтобы перефразировать себя: что было бы артефактом maven в репозитории IBM, который содержит класс EmbeddedServerImpl? И достаточно ли включить этот артефакт, или их больше требуется для встраивания свободы?
Рассмотрите возможность использования [плагин Liberty Maven] (https://github.com/WASdev/ci.maven) для запуска ваших интеграционных тестов. Фактически, примерный проект, созданный с использованием архетипа [libty plugin archtype] (https://github.com/WASdev/ci.maven#liberty-plugin-archetype), показывает только это. – jgawor
Для NoClassDefFoundError, любая другая информация о настройке? Конкретная версия версии Liberty и среда выполнения могут помочь. Был ли ws-server.jar перемещен из wlp/bin/tools? – ewhoch
@jgawor, скажем, у меня есть несколько тестов интеграции, и я хочу запустить каждый из них на чистом сервере (например, в новой базе данных). Запуск Liberty только один раз на этапе «pre-integration-test» будет поддерживать одну и ту же базу данных для всех тестов, и они могут влиять друг на друга. – alebu