Arquillian:使用ShrinkWrap从现有战争中创建WebArchive

时间:2013-07-23 13:35:59

标签: jboss-arquillian shrinkwrap

我正在尝试从Arquillian的另一个maven项目部署现有的战争。 我已经解决了战争,并将其复制到我的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

我猜我应该尝试以不同的方式创造战争?

2 个答案:

答案 0 :(得分:14)

加我2美分。更快速(并且具有相同的结果)是以下方法:

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

答案 1 :(得分:11)

我找到了答案。 我需要在调用结束时添加.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