将内部JAR库添加到Arquillian中的WAR测试中

问题描述 投票:1回答:1

[我正在尝试与Arquillian在war程序包中测试Java RESTful API(JAX-RS)。 war中的API调用位于jar中的EJB的方法。

为了测试这一点,我创建了一个Arquillian测试,该测试调用war方法。测试位于test内的war文件夹中。问题是Arquillian抱怨它没有在jar中找到内部调用的库(请注意,该库不在pom.xml中)。我不想在war中不添加EJB依赖关系,如何将此库添加到Arquillian的部署中?

@Deployment
public static WebArchive createDeployment() {
    return ShrinkWrap.create(WebArchive.class, "test.war")
        .addClass(DAOException.class)
        .addClass(BeanException.class)
        .addPackages(true, "org.jooq") // <-- I had to copy this library to the war
        .setWebXML("WEB-INF/web.xml")
        .addAsDirectories("/myfolder/mypackage")  // <-- this doesn't work
        .addPackages(true, "ejb.package");
}

UPDATE

我找到了此here,如果importFrom获取文件目录而不是jar文件,它将对我有用。

JavaArchive roundtrip = ShrinkWrap
  .create(ZipImporter.class, "myPackageRoundtrip.jar")
  .importFrom(new File("/home/alr/Desktop/myPackage.jar"))
  .as(JavaArchive.class);
java ejb jboss-arquillian java-ee-8
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.