[我正在尝试与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);