java spring jboss jboss7.x spring-3

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:

  1. wildfly:undeploy
  2. clean
  3. 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

  1. ¿Qué todas las bibliotecas y su versión están empaquetadas dentro de su aplicación?
  2. 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.