Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

A component named 'XXX' is already defined in this module in JBoss 7.1.1

I did not create the spring bean name with TimerServiceDispatcher in my application. But, the JBoss throw exception because of TimerServiceDispatcher is already defined in this module. I don't know what is the problem. What I am missing? What I need to do?

My application use Seam 2.3, Spring 3.0 and JPA 2.0. I don't use EJB.

11:29:01,531 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-4) JBAS015876: Starting deployment of "MRBS.war" 11:29:04,217 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-5) MSC00001: Failed to start service jboss.deployment.unit."MRBS.war".PARSE: org.jboss.msc.service.StartExcept ion in service jboss.deployment.unit."MRBS.war".PARSE: Failed to process phase PARSE of deployment "MRBS.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$Worker.runTask(Unknown Source) [rt.jar:1.6.0_23]     at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [rt.jar:1.6.0_23]     at java.lang.Thread.run(Unknown Source) [rt.jar:1.6.0_23] Caused by: java.lang.IllegalArgumentException: JBAS011046: A component named 'TimerServiceDispatcher' 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  11:29:04,230 INFO  [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS015870: Deploy of deployment "MRBS.war" was rolled back with failure message {"JBAS014671: Failed servi ces" => {"jboss.deployment.unit.\"MRBS.war\".PARSE" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"MRBS.war\".PARSE: Failed to process phase PARSE of d eployment \"MRBS.war\""}} 11:29:04,292 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-6) JBAS015877: Stopped deployment MRBS.war in 61ms 11:29:04,294 INFO  [org.jboss.as.controller] (DeploymentScanner-threads - 2) JBAS014774: Service status report JBAS014777:   Services which failed to start:      service jboss.deployment.unit."MRBS.war".PARSE: org.jboss.msc.service.StartException in service jboss.deployment.unit."MRBS.war". PARSE: Failed to process phase PARSE of deployment "MRBS.war" 

jboss-deployment-structure.xml

<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0">   <deployment>       <dependencies>           <module name="org.hibernate" export="true"/>           <module name="javax.faces.api" export="true" />           <module name="com.sun.jsf-impl" export="true"/>           <module name="org.dom4j" export="true"/>           <module name="org.hibernate.validator" export="true"/>         </dependencies>         <exclusions>             <module name="org.apache.log4j" />         </exclusions>          </deployment>   </jboss-deployment-structure>  

Deplyment Structure

MRBS.war     -index.html     +web-page-pakage     +META-INF     +WEB-INF         +classes         +lib            aopalliance.jar             commons-beanutils.jar             commons-codec.jar             commons-lang-2.5.jar             drools-compiler.jar             drools-core.jar             drools-decisiontables.jar             drools-templates.jar             eclipselink.jar             el-api.jar             guava.jar             guice.jar             hibernate-ehcache.jar             httpclient.jar             httpcore.jar             javax.persistence_2.0.1.v201006031150.jar             jboss-el.jar             jboss-seam-debug.jar             jboss-seam-excel.jar             jboss-seam-ioc.jar             jboss-seam-mail.jar             jboss-seam-pdf.jar             jboss-seam-ui.jar             jboss-seam.jar             junit-4.8.1.jar             log4j-1.2.14.jar             mysql-connector-java-5.1.6-bin.jar             primefaces-3.3.1.jar             sac.jar             spring-aop.jar             spring-asm.jar             spring-beans.jar             spring-context.jar             spring-core.jar             spring-expression.jar             spring-jdbc.jar             spring-orm.jar             spring-tx.jar             spring-web.jar             urlrewritefilter.jar             xercesImpl.jar             xml-apis.jar         -components.xml              -faces-config.xml         -jboss-deployment-structure.xml         -pages.xml         -web.xml 
like image 923
Zaw Than oo Avatar asked Nov 01 '12 05:11

Zaw Than oo


2 Answers

I had a bean annotated with @Singleton and @Stateless that triggered this error. My code was of course wrong but the message and posts like this lead me down the wrong path for a while.

like image 82
Piwaf Avatar answered Oct 05 '22 23:10

Piwaf


I know the answer to this one. Spent weeks with JBoss Support on it due to my stubborness. They plan on providing fix or at least better messaging with EAP 6.2.x release.

The problem arises with the EJB Annotation preprocessors - which take your war, and the libs compiled into it and scans them for EJB annotations. Some Jar files can have an entry in the Manifest for "Classpath: ." (or whatever but with '.' as one of the entries). This causes the annotation preprocessor to idiotically process all the jar files in the web-inf lib again. Finally it will get around to a jar file with an EJB annotation in it that it has already seen, because it was already processed earlier - this causes it to complain with "A component Named xxx is already defined".

So the most frustrating part here is that it's probably some old jar file that you don't even care about that has this unnecessary Classpath manifest entry in it - and causes JBoss to recurse on itself.

like image 34
djchapm Avatar answered Oct 05 '22 22:10

djchapm