Arquillian: Создайте веб-архив из существующей войны, используя ShrinkWrap.

Я пытаюсь развернуть существующую войну из другого проекта maven в Arquillian. Я разрешил войну и скопировал ее в целевой каталог моего проекта Arquillian.

Я пытаюсь создать его ниже:

@Deployment
public static WebArchive createDeployment() {

    return (WebArchive) ShrinkWrap.create(ZipImporter.class, "MyWarToTest.war").importFrom(
            new File("target/MyWarToTest.war"));

}

Однако я получаю исключение приведения класса.

Вызвано: java.lang.ClassCastException: org.jboss.shrinkwrap.impl.base.importer.zip.ZipImporterImpl нельзя преобразовать в org.jboss.shrinkwrap.api.Archive

Я предполагаю, что я должен попытаться создать войну по-другому?


person cbeaudin    schedule 23.07.2013    source источник


Ответы (2)


Добавляю свои 2 цента. Еще более быстрым (и с тем же результатом) является следующий метод:

@Deployment
public static WebArchive createDeployment() {
    return ShrinkWrap.createFromZipFile(WebArchive.class, new File("target/payloadPlan.war"));
}
person Henk de Vries    schedule 06.12.2013

Я нашел ответ. Мне нужно было добавить .as(WebArchive.class) в конец вызова.
Это должно выглядеть так:

@Deployment
public static WebArchive createDeployment() {

    return ShrinkWrap.create(ZipImporter.class, "payloadPlan.war").importFrom(new File("target/payloadPlan.war"))
            .as(WebArchive.class);

}

Я нашел ответ здесь: http://zezutom.blogspot.com/2012/08/going-mobile-with-arquillian.html

person cbeaudin    schedule 23.07.2013