11

我正在尝试从 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

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

4

2 回答 2

14

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

@Deployment
public static WebArchive createDeployment() {
    return ShrinkWrap.createFromZipFile(WebArchive.class, new File("target/payloadPlan.war"));
}
于 2013-12-06T13:17:19.500 回答
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

于 2013-07-23T14:06:00.380 回答