web-dev-qa-db-fra.com

Un composant nommé 'XXX' est déjà défini dans ce module dans JBoss 7.1.1

Je n'ai pas créé le nom du bean Spring avec TimerServiceDispatcher dans mon application. Mais, l'exception de levée JBoss à cause de TimerServiceDispatcher est déjà définie dans ce module. Je ne sais pas quel est le problème. Qu'est-ce qui me manque? Ce que je dois faire?

Mon application utilise Seam 2.3, Spring 3.0 et JPA 2.0. Je n'utilise pas 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> 

Structure de déploiement

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
24
Zaw Than oo

J'ai eu un bean annoté avec @Singleton et @Stateless qui a déclenché cette erreur. Mon code était bien sûr erroné, mais le message et les messages comme celui-ci m'ont conduit sur le mauvais chemin pendant un certain temps.

22
Piwaf

Je connais la réponse à celle-ci. J'ai passé des semaines avec JBoss Support à cause de mon entêtement. Ils prévoient de fournir un correctif ou au moins une meilleure messagerie avec la version EAP 6.2.x.

Le problème se pose avec les préprocesseurs d'annotation EJB - qui prennent votre guerre, et les bibliothèques compilées dans celui-ci et les scanne pour les annotations EJB. Certains fichiers Jar peuvent avoir une entrée dans le manifeste pour "Classpath:." (ou autre chose mais avec '.' comme une des entrées). Ainsi, le préprocesseur d'annotations traite à nouveau de façon idiote tous les fichiers jar de la bibliothèque Web-inf. Enfin, il se déplacera vers un fichier jar avec une annotation EJB qu'il a déjà vu, car il a déjà été traité plus tôt - cela le fait se plaindre avec "Un composant nommé xxx est déjà défini".

Donc, la partie la plus frustrante ici est qu'il s'agit probablement d'un ancien fichier jar qui ne vous intéresse même pas qui contient cette entrée de manifeste Classpath inutile - et fait que JBoss récurrente sur lui-même.

14
djchapm

J'ai eu le même problème mais pour moi aucune des solutions suggérées n'a aidé. J'ai remarqué que le EJB JAR était présent twice (newest version and older version) dans le WEB.WAR.

Cela est dû au fait que l'opération de nettoyage maven sur le projet parent dans Eclipse ne s'est pas répercutée en cascade sur les projets enfants. Je l'ai corrigé en faisant un simple "mvn clean" sur le child project.

8
Andreas Bögelein

Exécution des objectifs Maven:

  1. wildfly:undeploy
  2. clean
  3. wildfly:deploy

aidé dans notre cas:

[ERREUR] Causée par: Java.lang.IllegalArgumentException: WFLYEE0040: Un composant nommé 'xxx' est déjà défini dans ce module "}}

6
Jens Piegsa

J'ai eu le même problème dans IntelliJ. La raison en était qu'IntelliJ a créé un fichier WAR avec mes classes à la fois dans WEB-INF/classes ET en tant que fichier Jar distinct dans WEB-INF/lib.

Il m'a fallu un certain temps pour découvrir pourquoi IntelliJ a fait cela. La raison réside dans le dialogue Fichier -> Structure du projet -> Artefacts: IntelliJ Project Structure Dialogue

Après avoir supprimé la sortie de compilation "vertrag-ui-war", l'erreur ne s'est plus produite. P.S. Je n'ai aucune idée pourquoi IntelliJ a fait ce réglage - je n'ai définitivement pas réglé cela.

5
stefan.m

La suppression de @Singleton a corrigé cette erreur pour moi. Je ne sais pas pourquoi cependant.

1
Brooks

Le problème n'est pas que vous ne créez pas TimeServiceDispatcher c'est une partie de classe du framework de couture org.jboss.seam.async.TimerServiceDispatcher, c'est une classe fw de couture.

Maintenant sur l'erreur.

Ce type d'erreur se produit en cas de conflits dans les bibliothèques fournies avec l'application et par le serveur. C'est vraiment très courant avec JBoss 7.1 et très frustrant aussi.

Tu dois savoir

  1. Quelles sont toutes les bibliothèques et leur version dans votre application?
  2. ce que toutes les bibliothèques et versions ci-dessus sont fournies par JBoss 7.1

Maintenant, pour les bibliothèques qui sont des deux côtés, vérifiez la version

si la version de l'application et de JBoss est la même, supprimez ce pot de Application (suggéré) (sinon vous pouvez configurer dans le fichier deployment-structure.xml lequel utiliser)

si la version de jar d'application et de jboss est différente, dans ce cas, vous devrez configurer dans le descripteur de déploiement lequel choisir.

0
Mukul Goel

Lors du copier-coller et de la création de nouveaux composants, j'ai oublié de mettre à jour la valeur que l'annotation @Stateless(value) accepte dans les nouveaux composants. Cela signifiait que j'avais deux composants avec le même nom et j'ai eu cette erreur. J'espère que cela aide quelqu'un.

0
Skurpi