java - Un componente llamado ''XXX'' ya está definido en este módulo en JBoss 7.1.1
spring jboss7.x (8)
Al copiar y pegar y crear nuevos componentes, olvidé actualizar el valor que acepta la anotación @Stateless(value)
en los nuevos componentes. Esto significaba que tenía dos componentes con el mismo nombre y recibí este error. Espero que ayude a alguien.
No TimerServiceDispatcher
nombre del bean spring con TimerServiceDispatcher
en mi aplicación. Pero, la excepción de lanzamiento de JBoss
debido a TimerServiceDispatcher
ya está definida en este módulo. No sé cuál es el problema. ¿Qué me estoy perdiendo? ¿Lo que necesito hacer?
Mi aplicación utiliza Seam 2.3, Spring 3.0 y JPA 2.0. Yo no uso 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>
Estructura de la aplicación
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
Ejecutando los objetivos de Maven:
-
wildfly:undeploy
-
clean
-
wildfly:deploy
ayudado en nuestro caso:
[ERROR] Causado por: java.lang.IllegalArgumentException: WFLYEE0040: Un componente llamado ''xxx'' ya está definido en este módulo "}}
El problema no es que usted no cree TimeServiceDispatcher
, TimeServiceDispatcher
que es una parte de la clase de seam framework org.jboss.seam.async.TimerServiceDispatcher
, es una clase seam fw.
Ahora sobre el error.
Este tipo de error se produce cuando hay conflictos en las bibliotecas provistas con la aplicación y por el servidor. Es muy común con JBoss 7.1 y también muy frustrante.
Necesitas saber
- ¿Qué todas las bibliotecas y su versión están empaquetadas dentro de su aplicación?
- lo que JBoss 7.1 proporciona todas las bibliotecas y las versiones anteriores
Ahora para las bibliotecas que están en ambos lados compruebe la versión
Si la versión de la aplicación y JBoss es la misma, entonces elimine ese jar de la aplicación (sugerido) (de lo contrario, puede configurar en la estructura de implementación.xml cuál usar)
Si la versión de la aplicación jar y jboss es diferente, en ese caso, deberá configurar en el descriptor de implementación cuál elegir.
Eliminar @Singleton corrigió este error para mí. Aunque no tengo idea de por qué.
Sé la respuesta a esta. Pasé semanas con JBoss Support en ello debido a mi terquedad. Planean proporcionar una solución o, al menos, una mejor mensajería con la versión EAP 6.2.x.
El problema surge con los preprocesadores de Anotación de EJB, que toman su guerra, y las libretas compiladas en él y las escanea en busca de anotaciones de EJB. Algunos archivos Jar pueden tener una entrada en el Manifiesto para "Classpath:." (o lo que sea pero con ''.'' como una de las entradas). Esto hace que el preprocesador de anotaciones vuelva a procesar todos los archivos jar en la biblioteca de información web. Finalmente, llegará a un archivo jar con una anotación EJB en él que ya se ha visto, porque ya se procesó anteriormente. Esto hace que se queje con "Un componente llamado xxx ya está definido".
Así que la parte más frustrante aquí es que probablemente es un archivo jar antiguo que ni siquiera le importa que tenga esta entrada innecesaria de manifiesto de Classpath en él, y hace que JBoss retroceda sobre sí mismo.
Tuve el mismo problema en IntelliJ. El motivo fue que IntelliJ creó un archivo WAR con mis clases tanto en WEB-INF / classes Y como un archivo Jar separado en WEB-INF / lib.
Me tomó un tiempo descubrir por qué IntelliJ hizo esto. El motivo se encuentra en el diálogo Archivo -> Estructura del proyecto -> Artefactos:
Después de eliminar la salida de compilación ''vertrag-ui-war'', el error ya no se produjo. PD: No tengo idea de por qué IntelliJ hizo esta configuración, definitivamente no la configuré.
Tuve el mismo problema, pero para mí ninguna de las soluciones sugeridas me ayudó. Noté que el EJB JAR
estaba presente twice
( newest version and older version
) en WEB.WAR.
Esto se debió a que la operación de limpieza de maven
en el proyecto principal en eclipse no se aplicó en cascada a los proyectos secundarios. Lo arreglé haciendo un simple "mvn clean"
en el child project
.
Tuve un bean anotado con @Singleton y @Stateless que provocó este error. Por supuesto, mi código estaba equivocado, pero el mensaje y mensajes como este me llevaron por el camino equivocado por un tiempo.