2015-03-19 46 views
1

我试图建立的Arquillian已经定义,我总是得到一个堆栈跟踪:的Arquillian - 组件模块

13:37:29,432 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-4) MSC00001: Failed to start service jboss.deployment.unit."6bf136f5-6ea1-43e0-a521-76250a489921.war".PARSE: org.jboss.msc.service.StartException in service jboss.deployment.unit."6bf136f5-6ea1-43e0-a521-76250a489921.war".PARSE: Failed to process phase PARSE of deployment "6bf136f5-6ea1-43e0-a521-76250a489921.war" 
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:119) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final] 
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA] 
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA] 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_71] 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_71] 
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_71] 
Caused by: java.lang.IllegalArgumentException: JBAS011046: A component named 'ValidationServiceImpl' is already defined in this module 
at org.jboss.as.ee.component.EEModuleDescription.addComponent(EEModuleDescription.java:137) 
at org.jboss.as.ejb3.deployment.processors.EJBComponentDescriptionFactory.addComponent(EJBComponentDescriptionFactory.java:60) 
at org.jboss.as.ejb3.deployment.processors.SessionBeanComponentDescriptionFactory.processSessionBeans(SessionBeanComponentDescriptionFactory.java:157) 
at org.jboss.as.ejb3.deployment.processors.SessionBeanComponentDescriptionFactory.processAnnotations(SessionBeanComponentDescriptionFactory.java:86) 
at org.jboss.as.ejb3.deployment.processors.AnnotatedEJBComponentDescriptionDeploymentUnitProcessor.processAnnotations(AnnotatedEJBComponentDescriptionDeploymentUnitProcessor.java:58) 
at org.jboss.as.ejb3.deployment.processors.AbstractDeploymentUnitProcessor.deploy(AbstractDeploymentUnitProcessor.java:81) 
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final] 
... 5 more 

我的Arquillian测试设置以下列方式:

@RunWith(Arquillian.class) 
public class ECadDocumentServiceImplTestIT { 
private static final boolean RECURSIVE = true; 

static Logger logger = Logger.getLogger(ECadDocumentServiceImplTestIT.class); 

@Inject 
private ECadDocumentService eCadDocumentService; 

@Deployment 
public static WebArchive getServiceDeployment() { 
    File settingsFile = new File(System.getProperty("maven.execution.global-settings")); 
    File pomFile = new File(System.getProperty("maven.execution.pom-file")); 

    File[] libs = Maven.configureResolver() 
      .fromFile(settingsFile) 
      .loadPomFromFile(pomFile) 
      .importRuntimeAndTestDependencies().resolve().withTransitivity().asFile(); 

    WebArchive war = ShrinkWrap.create(WebArchive.class) 
      .addAsLibraries(libs) 
      .addPackages(true, ECadDocumentService.class.getPackage()) 
      .addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml") 
      .addAsResource("test-persistence.xml", "META-INF/persistence.xml"); 
    return war; 
} 


@Test 
public void test() throws EcadError { 
    ApplicationIdentification applicationIdent = ApplicationIdentificationMother.valid(0); 
    DocumentTreatmentResponse dtr = eCadDocumentService.addDocument(ApplicantIdentityMother.valid(), applicationIdent, DocumentIdentificationMother.valid(), DocumentFingerprintMother.valid()); 
    assertEquals(applicationIdent.getApplicationId(), dtr.getApplicationID()); 
} 

}

我正在添加libs,因为我使用的是apache.commons.net依赖项。否则,我会得到一个“classNotFoundException”。

有没有人有任何想法?我没有两次获得名为'ValidationServiceImpl'的类。

回答

0

也许重复的类进入ECadDocumentService的包中,并在某些库中从pom文件解析。 尝试共享关于您项目布局的更多信息,或至少分享测试和有问题的类的位置,以及您获取库中包含在pom.file中的自己项目的依赖关系。

您可以保存部署归档文件(部署前),将下一个选项添加到arquillian.xml文件。

<engine> 
    <property name="deploymentExportPath">target/deployments</property> 
</engine> 

有关于它的部分的更多信息导出在这里部署arquillian guide

问候