2015-01-20 2 views
2

새로운 ShrinkWrap 기능 MavenImporter (https://github.com/shrinkwrap/resolver)를 사용하여 Arquillian Test를 실행하기위한 전체 WebArchive를 만들고 싶습니다.WebArchive 생성 중 ShrinkWrap UnknownExtensionTypeException이 발생했습니다.

하면 시나리오 :

Arquillian는 봄 응용 프로그램을 테스트 SoapUi와/확장 된 통합되어야한다. Spring 애플리케이션에 의해 노출되고 cxf로 구현 된 n 개의 끝점이 있습니다.

이 시험 방법은 다음과 같습니다

내 @ 배포-방법은 다음과 같습니다
/* 
* 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); 
} 

내가 지금이 예외 받고 있어요 :

java.lang.RuntimeException: Could not invoke deployment method: public static org.jboss.shrinkwrap.api.Archive com.bosch.mome.ws.facade.common.soapui.MarketTransparencyServiceEndpointsSoapUiTest.createDeployment() 
    at org.jboss.shrinkwrap.api.UnknownExtensionTypeException.newInstance(UnknownExtensionTypeException.java:68) 
    at org.jboss.shrinkwrap.api.UnknownExtensionTypeExceptionDelegator.newExceptionInstance(UnknownExtensionTypeExceptionDelegator.java:37) 
    at org.jboss.shrinkwrap.impl.base.ServiceExtensionLoader.findExtensionImpl(ServiceExtensionLoader.java:279) 
    at org.jboss.shrinkwrap.impl.base.ServiceExtensionLoader.loadExtensionMapping(ServiceExtensionLoader.java:246) 
    at org.jboss.shrinkwrap.impl.base.ServiceExtensionLoader.createFromLoadExtension(ServiceExtensionLoader.java:212) 
    at org.jboss.shrinkwrap.impl.base.ServiceExtensionLoader.load(ServiceExtensionLoader.java:108) 
    at org.jboss.shrinkwrap.impl.base.ArchiveBase.as(ArchiveBase.java:662) 
    at org.jboss.shrinkwrap.api.ArchiveFactory.create(ArchiveFactory.java:150) 
    at org.jboss.shrinkwrap.api.ShrinkWrap.create(ShrinkWrap.java:163) 
    at com.bosch.mome.ws.facade.common.soapui.MarketTransparencyServiceEndpointsSoapUiTest.createDeployment(MarketTransparencyServiceEndpointsSoapUiTest.java:82) 

Jan 19, 2015 6:29:46 PM org.apache.coyote.http11.Http11Protocol destroy 
INFO: Stopping Coyote HTTP/1.1 on http-127.0.0.1-8888 

을 현재 Assort를 추가하지 않고 있습니다. 왜냐하면 현재 junit SoapUi 라이브러리와 Arquillian을 Endpoi 테스트 용으로 통합하고 있기 때문입니다. nts 및 전체 응용 프로그램/WebArchive를로드해야합니다.

나는 ShrinkWrap 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) 

하지만 정확히 확장 매핑을 구성 할 수있는 모르겠어요. 튜토리얼이나 샘플은 없습니다. 아니면 내가 그들을 찾지 못했을 수도 있습니다.

누구나이 새로운 ShrinkWrap 기능으로 경험이 있습니까?

+0

루벤 :

<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> 

는 또한 문서를 체크 아웃 :

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

당신이 어느 정도이 같은 BOM과 depchain를 사용하는 경우 오류가 사라질 밝혀 : 나는 다음과 같은 종속성을했다 당신은 이것에 대한 해결책을 찾았습니까? –

+1

@Ben Page, 우리는 더 많은 재 작업을 할 시간이 없었기 때문에 전화를 조롱하기로 결정했습니다. 늦은 반응에 대해 유감입니다. –

답변

0

나는 약간의 시간이 있었지만 어쨌든 누군가 도움이된다고 알고 있습니다.

나는 같은 문제가있어서 원인은 내 pom.xml에서 욕심이 많았 기 때문입니다. , https://github.com/shrinkwrap/resolver/blob/master/README.asciidoc

+0

힌트를 주셔서 감사합니다. 우리는 테스트를위한 접근 방식을 변경했으나 시간이 다되면 곧 점검 할 것입니다. –