Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
收缩包装Maven分解器can';在本地回购中找不到战争文物_Maven_Integration Testing_Jboss Arquillian_Shrinkwrap - Fatal编程技术网

收缩包装Maven分解器can';在本地回购中找不到战争文物

收缩包装Maven分解器can';在本地回购中找不到战争文物,maven,integration-testing,jboss-arquillian,shrinkwrap,Maven,Integration Testing,Jboss Arquillian,Shrinkwrap,我进行了一个集成测试,在其中使用Arquillian和ShrinkWrap解析器在Wildfly中部署了两个web服务。这两个服务都是独立的,因此在任何Maven依赖意义上都不依赖于另一个。服务2对服务1进行HTTP调用。这纯粹是一个B2B场景,其中一个组件调用另一个组件。 也就是说,这是我的测试。问题是,Arquillian无法部署服务1。因为包覆面处理错误消息是无用的(实际上没有消息),所以我试图找出我做错了什么。我已经验证了服务1的工件确实存在于我的本地Maven repo中 @Deplo

我进行了一个集成测试,在其中使用Arquillian和ShrinkWrap解析器在Wildfly中部署了两个web服务。这两个服务都是独立的,因此在任何Maven依赖意义上都不依赖于另一个。服务2对服务1进行HTTP调用。这纯粹是一个B2B场景,其中一个组件调用另一个组件。 也就是说,这是我的测试。问题是,Arquillian无法部署服务1。因为包覆面处理错误消息是无用的(实际上没有消息),所以我试图找出我做错了什么。我已经验证了服务1的工件确实存在于我的本地Maven repo中

@Deployment(name = AVAILABILITY_SERVICE_NAME, order = 1)
public static WebArchive createAvailabilityServiceDeployment() {
    WebArchive availabilityService = Maven.configureResolver()
        .workOffline().withMavenCentralRepo(false)
        .withClassPathResolution(true)
        .resolve(AVAILABILITY_SERVICE_MVN_COORD).withoutTransitivity()
        .asSingle(WebArchive.class);

    System.out.println(availabilityService.toString(true));

    return availabilityService;
}

@Deployment(name = APPOINTMENT_SERVICE_NAME, order = 2)
public static WebArchive createAppointmentServiceDeployment()
        throws FileNotFoundException {
    WebArchive appointmentService = create(WebArchive.class,
        APPOINTMENT_SERVICE_NAME + ".war").addPackages(true,
        Filters.exclude(".*Test.*"), AppointmentApp.class.getPackage())
        .addAsWebInfResource(EmptyAsset.INSTANCE,
            ArchivePaths.create("beans.xml"));

    System.out.println(appointmentService.toString(true));

    return appointmentService;
}

java.lang.RuntimeException: Could not invoke deployment method: public static org.jboss.shrinkwrap.api.spec.WebArchive name.abhijitsarkar.microservices.appointment.AppointmentResourceIT.createAvailabilityServiceDeployment()
    at org.jboss.shrinkwrap.resolver.spi.format.FormatProcessors.find(FormatProcessors.java:53)
    at org.jboss.shrinkwrap.resolver.impl.maven.MavenFormatStageImpl.as(MavenFormatStageImpl.java:82)
    at org.jboss.shrinkwrap.resolver.impl.maven.MavenFormatStageImpl.asSingle(MavenFormatStageImpl.java:100)
    at name.abhijitsarkar.microservices.appointment.AppointmentResourceIT.createAvailabilityServiceDeployment(AppointmentResourceIT.java:50)

显然,这需要分两步完成。希望它能帮助别人

private static WebArchive createDependentServiceDeployment(String name) {
    String mvnCoordinate = join(":", DEPENDENT_SERVICE_GROUP, name,
        DEPENDENT_SERVICE_PACKAGING, DEPENDENT_SERVICE_VERSION);
    File service = Maven.configureResolver().workOffline()
        .withMavenCentralRepo(false).withClassPathResolution(true)
        .resolve(mvnCoordinate).withoutTransitivity().asSingleFile();

    return ShrinkWrap.create(ZipImporter.class,
        join(".", name, DEPENDENT_SERVICE_PACKAGING))
       .importFrom(service).as(WebArchive.class);
}