Java 创建WebArchive期间的包覆面提取未知拉伸类型异常

Java 创建WebArchive期间的包覆面提取未知拉伸类型异常,java,junit4,soapui,jboss-arquillian,shrinkwrap,Java,Junit4,Soapui,Jboss Arquillian,Shrinkwrap,我想使用新的包覆面提取功能MavenImporter()为运行Arquillian测试创建一个完整的WebArchive 情景: Arquillian应该与SoapUi集成/扩展,以测试Spring应用程序。Spring应用程序公开了n个端点,并使用cxf实现 测试方法如下所示: /* * Source folder for SoapUi project files */ @Value("${soapui.workspace}") private String soapUiWorkspac

我想使用新的包覆面提取功能MavenImporter()为运行Arquillian测试创建一个完整的WebArchive

情景:

Arquillian应该与SoapUi集成/扩展,以测试Spring应用程序。Spring应用程序公开了n个端点,并使用cxf实现

测试方法如下所示:

 /*
 * Source folder for SoapUi project files
 */
@Value("${soapui.workspace}")
private String soapUiWorkspace;



/*
 * Output directory for test reports
 */
@Value("${soapUi.reports.dir}")
private String reportsOutpuDirectory;



/*
 * Comma separated list of SoapUi projects to be tested
 */
@Value("${soapUi.projects}")
private String[] projects;



/*
 * URL resource provided by Arquillian runtime
 */
@ArquillianResource
private URL serverUrl;



@Test
public void testServiceEndpoints() throws Exception {

    final SoapUITestCaseRunner runner = new SoapUITestCaseRunner();



    for (String project : projects) {

        runner.setProjectFile(String.format("%s%s%s", soapUiWorkspace, "/", project));

        runner.setHost(String.format("%s:%s", serverUrl.getHost(), serverUrl.getPort()));

        runner.setOutputFolder(reportsOutpuDirectory);



        LOG.info("SoapUi-Call for " + runner.getHost());



        runner.setJUnitReport(true);

        runner.setPrintReport(true);

        runner.run();

    }

}
@Deployment
public static Archive<?> createDeployment() {
        return ShrinkWrap.create(MavenImporter.class).loadPomFromFile("pom.xml").importBuildOutput().as(WebArchive.class);
}
<dependencyManagement>
  <dependencies>
    ...
    <!-- Override dependency resolver with latest version.
         This must go *BEFORE* the Arquillian BOM. -->
    <dependency>
      <groupId>org.jboss.shrinkwrap.resolver</groupId>
      <artifactId>shrinkwrap-resolver-bom</artifactId>
      <version>${version.shrinkwrap.resolvers}</version>
      <scope>import</scope>
      <type>pom</type>
    </dependency>
    <dependency>
      <groupId>org.jboss.arquillian</groupId>
      <artifactId>arquillian-bom</artifactId>
      <version>1.1.11.Final</version>
      <scope>import</scope>
      <type>pom</type>
    </dependency>
    ...
  </dependencies>
</dependencyManagement>
<dependencies>
    ...
    <dependency>
      <groupId>org.jboss.shrinkwrap.resolver</groupId>
      <artifactId>shrinkwrap-resolver-depchain</artifactId>
      <version>${version.shrinkwrap.resolvers}</version>
      <scope>test</scope>
      <type>pom</type>
    </dependency>
    ...
    <!-- your container goes here, too (for me it was arquillian-tomee-embedded) -->
</dependencies>
我的@Deployment方法如下所示:

 /*
 * Source folder for SoapUi project files
 */
@Value("${soapui.workspace}")
private String soapUiWorkspace;



/*
 * Output directory for test reports
 */
@Value("${soapUi.reports.dir}")
private String reportsOutpuDirectory;



/*
 * Comma separated list of SoapUi projects to be tested
 */
@Value("${soapUi.projects}")
private String[] projects;



/*
 * URL resource provided by Arquillian runtime
 */
@ArquillianResource
private URL serverUrl;



@Test
public void testServiceEndpoints() throws Exception {

    final SoapUITestCaseRunner runner = new SoapUITestCaseRunner();



    for (String project : projects) {

        runner.setProjectFile(String.format("%s%s%s", soapUiWorkspace, "/", project));

        runner.setHost(String.format("%s:%s", serverUrl.getHost(), serverUrl.getPort()));

        runner.setOutputFolder(reportsOutpuDirectory);



        LOG.info("SoapUi-Call for " + runner.getHost());



        runner.setJUnitReport(true);

        runner.setPrintReport(true);

        runner.run();

    }

}
@Deployment
public static Archive<?> createDeployment() {
        return ShrinkWrap.create(MavenImporter.class).loadPomFromFile("pom.xml").importBuildOutput().as(WebArchive.class);
}
<dependencyManagement>
  <dependencies>
    ...
    <!-- Override dependency resolver with latest version.
         This must go *BEFORE* the Arquillian BOM. -->
    <dependency>
      <groupId>org.jboss.shrinkwrap.resolver</groupId>
      <artifactId>shrinkwrap-resolver-bom</artifactId>
      <version>${version.shrinkwrap.resolvers}</version>
      <scope>import</scope>
      <type>pom</type>
    </dependency>
    <dependency>
      <groupId>org.jboss.arquillian</groupId>
      <artifactId>arquillian-bom</artifactId>
      <version>1.1.11.Final</version>
      <scope>import</scope>
      <type>pom</type>
    </dependency>
    ...
  </dependencies>
</dependencyManagement>
<dependencies>
    ...
    <dependency>
      <groupId>org.jboss.shrinkwrap.resolver</groupId>
      <artifactId>shrinkwrap-resolver-depchain</artifactId>
      <version>${version.shrinkwrap.resolvers}</version>
      <scope>test</scope>
      <type>pom</type>
    </dependency>
    ...
    <!-- your container goes here, too (for me it was arquillian-tomee-embedded) -->
</dependencies>
我没有单独添加这些资产,因为我正在集成junit SoapUi库和Arquillian以测试端点,并且需要加载完整的应用程序/WebArchive

我正在寻找包覆膜式javadoc,但找不到有效的解决方案/修复方案

在javadoc中,我阅读了以下内容:

UnknownExtensionTypeException: Indicates that a default name cannot be generated for a given type because no extension mapping has been configured via ExtensionLoader.getExtensionFromExtensionMapping(Class)
但是我不知道在哪里可以准确地配置扩展映射。没有教程或示例。也许我找不到他们


有人有过这种新的包覆面处理功能的经验吗?

我知道这已经有一段时间了,但也许有人会觉得它很有用

我也有同样的问题,原因是我对pom.xml太贪婪了。我有以下依赖项:

<dependency>
  <groupId>org.jboss.shrinkwrap.resolver</groupId>
  <artifactId>shrinkwrap-resolver-api-maven</artifactId>
  <version>${version.shrinkwrap.resolvers}</version>
  <scope>test</scope>
</dependency>

org.jboss.shrinkwrap.resolver

Ruben,你找到解决办法了吗?@Ben Page,我们决定嘲弄这些电话,因为我们没有时间做进一步的调查。抱歉反应太晚。谢谢你给我一个提示。我们改变了测试方法,但只要我有时间,我们就会检查它。