Я пытаюсь протестировать с Arquillian Java RESTful API (JAX-RS) в пакете war
. API в war
вызывает метод EJB, который находится в jar
.
Чтобы проверить это, я создал тест Arquillian, который вызывает метод war
. Тест находится в папке test
внутри war
. Проблема в том, что Arquillian жалуется, что не находит библиотеку, которая вызывается внутри jar
(обратите внимание, что эта библиотека отсутствует в pom.xml
). Я предпочитаю не добавлять EJB-зависимость в war
, как добавить эту библиотеку в развертывание Arquillian?
@Deployment
public static WebArchive createDeployment() {
return ShrinkWrap.create(WebArchive.class, "test.war")
.addClass(DAOException.class)
.addClass(BeanException.class)
.addPackages(true, "org.jooq") // <-- I had to copy this library to the war
.setWebXML("WEB-INF/web.xml")
.addAsDirectories("/myfolder/mypackage") // <-- this doesn't work
.addPackages(true, "ejb.package");
}
ОБНОВЛЕНИЕ
Я нашел это здесь , и оно будет работать для меня, если importFrom
получит каталог файлов вместо jar
файл.
JavaArchive roundtrip = ShrinkWrap
.create(ZipImporter.class, "myPackageRoundtrip.jar")
.importFrom(new File("/home/alr/Desktop/myPackage.jar"))
.as(JavaArchive.class);