Добавление внутренней библиотеки JAR в WAR-тест в Arquillian - PullRequest
1 голос
/ 24 января 2020

Я пытаюсь протестировать с 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);
...