2013-07-23 17 views
6

Próbuję wdrożyć istniejącą wojnę z innego projektu maven w Arquillian. Rozwiązałem wojnę i kazałem ją skopiować do katalogu docelowego mojego projektu Arquilliana.Arquillian: Utwórz WebArchive z istniejącej wojny za pomocą ShrinkWrap

staram utworzyć go poniżej:

@Deployment 
public static WebArchive createDeployment() { 

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

} 

Jednak jestem coraz wyjątek klasa plastikowymi.

Spowodowany przez: java.lang.ClassCastException: org.jboss.shrinkwrap.impl.base.importer.zip.ZipImporterImpl nie może być oddanych do org.jboss.shrinkwrap.api.Archive

Zgaduję, że powinienem starać się stworzyć wojnę w inny sposób?

Odpowiedz

11

Znalazłem odpowiedź. Potrzebowałem dodać .as (WebArchive.class) na końcu połączenia.
To musi wyglądać następująco:

@Deployment 
public static WebArchive createDeployment() { 

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

} 

znalazłem odpowiedź tutaj: http://zezutom.blogspot.com/2012/08/going-mobile-with-arquillian.html

13

Dodawanie moje 2 centy. Jeszcze szybszy (z tym samym wynikiem) jest następująca metoda:

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