2013-07-23 9 views
6

Arquillianの別のMavenプロジェクトから既存の戦争を展開しようとしています。 私は戦争を解決し、私のArquillianプロジェクトのターゲットディレクトリにコピーしました。Arquillian:ShrinkWrapを使用して既存の戦争からWebArchiveを作成します。

私は以下のことを作成するためにを試してみてください:しかし、私はクラスのキャスト例外を取得しています

@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

に キャストすることはできません

私は戦争を別の方法で作ろうとしているはずですか?

答えて

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); 

} 

私はここに答えが見つかりました:私の2セントを追加 http://zezutom.blogspot.com/2012/08/going-mobile-with-arquillian.html

13

を。さらに迅速に(同じ結果で)次の方法があります:

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