2013-07-23 15 views
6

Sto provando a distribuire una guerra esistente da un altro progetto di maven in Arquillian. Ho risolto la guerra e l'ho copiata nella directory di destinazione del mio progetto Arquillian.Arquillian: Crea un WebArchive da una guerra esistente usando ShrinkWrap

io cerco per creare qui sotto:

@Deployment 
public static WebArchive createDeployment() { 

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

} 

Tuttavia, io sono sempre un'eccezione calco.

Causato da: java.lang.ClassCastException: org.jboss.shrinkwrap.impl.base.importer.zip.ZipImporterImpl non può essere cast org.jboss.shrinkwrap.api.Archive

Immagino che dovrei provare a creare la guerra in un modo diverso?

risposta

11

Ho trovato la risposta. Ho bisogno di aggiungere il .as (WebArchive.class) alla fine della chiamata.
Ha bisogno di simile a questa:

@Deployment 
public static WebArchive createDeployment() { 

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

} 

ho trovato la risposta qui: http://zezutom.blogspot.com/2012/08/going-mobile-with-arquillian.html

13

aggiungendo il mio 2 centesimi. Ancora più veloce (e con lo stesso risultato) è il seguente metodo:

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