2013-07-23 15 views
6

Tôi đang cố gắng triển khai một cuộc chiến tranh hiện tại từ một dự án maven khác trong Arquillian. Tôi đã giải quyết cuộc chiến và sao chép nó vào thư mục đích của dự án Arquillian của tôi.Arquillian: Tạo một WebArchive từ một cuộc chiến hiện tại bằng cách sử dụng ShrinkWrap

tôi thử để tạo ra nó dưới đây:

@Deployment 
public static WebArchive createDeployment() { 

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

} 

Tuy nhiên, tôi nhận được một ngoại lệ lớp diễn viên.

Nguyên nhân: java.lang.ClassCastException: org.jboss.shrinkwrap.impl.base.importer.zip.ZipImporterImpl không thể cast để org.jboss.shrinkwrap.api.Archive

Tôi đoán rằng tôi nên cố gắng tạo chiến tranh theo một cách khác?

Trả lời

11

Tôi đã tìm thấy câu trả lời. Tôi cần thêm .as (WebArchive.class) vào cuối cuộc gọi.
Nó cần phải trông như thế này:

@Deployment 
public static WebArchive createDeployment() { 

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

} 

Tôi tìm thấy câu trả lời ở đây: http://zezutom.blogspot.com/2012/08/going-mobile-with-arquillian.html

13

Thêm 2 cent của tôi. Thậm chí nhanh hơn (và có cùng kết quả) là phương pháp sau:

@Deployment 
public static WebArchive createDeployment() { 
    return ShrinkWrap.createFromZipFile(WebArchive.class, new File("target/payloadPlan.war")); 
} 
Các vấn đề liên quan