名为“XXX”的组件在此模块中已经定义在JBoss中7.1.1(A component named

2019-08-02 04:39发布

我没有创建与弹簧bean名称TimerServiceDispatcher在我的应用程序。 但是,在JBoss ,因为抛出异常TimerServiceDispatcher该模块中已定义。 我不知道是什么问题。 我很想念? 我需要做什么?

我的应用程序使用Seam 2.3,春季3.0和JPA 2.0。 我不使用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的部署,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结构

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

Answer 1:

我曾与@Singleton和@Stateless注释豆触发此错误。 我的代码当然是错误的,但消息和帖子这样导致我一会儿错误的道路。



Answer 2:

我知道这个问题的答案之一。 花了几个星期与它JBoss的支持,由于我的倔强。 他们计划提供修补程序,或者好至少消息传递EAP 6.2.x版本。

这个问题与EJB注解预处理器出现了 - 它把你的战争,并编译成它的库和扫描他们EJB注解。 一些Jar文件可以在清单中的条目为“类路径。” (或任何但是具有“”作为条目中的一个)。 这使得注解预处理器白痴再次处理在WEB-INF lib中的所有jar文件。 最后,它会避开与它的EJB注解,它已经看到一个jar文件,因为它已经较早处理的 - 这使得它与“名为XXX的组件已经被定义为”抱怨。

因此,这里最令人沮丧的是,它可能是你甚至不关心这个中有这种不必要的类路径清单项一些旧的jar文件 - 并导致了JBoss自身递归。



Answer 3:

我有同样的问题,但对我没有任何建议的解决方案的帮助。 我注意到, EJB JAR是目前twicenewest version and older version中) WEB.WAR.

这是因为maven在日食父项目清洁操作没有级联到子项目。 我做一个简单的固定它"mvn clean"child project



Answer 4:

运行Maven目标:

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

帮助在我们的例子:

[ERROR]所致:java.lang.IllegalArgumentException异常:WFLYEE0040:A组分名为 'xxx' 的已在此模块中定义的“}}



Answer 5:

我在的IntelliJ有同样的问题。 其原因是,创建的IntelliJ一个WAR文件,我的课都在WEB-INF / classes和在WEB-INF / lib中一个单独的JAR文件。

我花了一些时间来找出原因的IntelliJ这样做。 在对话文件的原因奠定 - >项目结构 - >工件:

去掉“vertrag-UI-战争”后编译输出,没有再出现错误。 PS我不知道为什么的IntelliJ使这个设置 - 我明确地没有设置这个。



Answer 6:

删除@Singleton固定这个错误我。 不知道为什么,虽然。



Answer 7:

问题不在于你创造力TimeServiceDispatcher是Seam框架的类部分org.jboss.seam.async.TimerServiceDispatcher ,其接缝FW类。

现在,有关错误。

当有提供应用程序和服务器库发生冲突这些类型的错误。 它十分重视共同与JBoss 7.1和非常令人沮丧的为好。

你得知道

  1. 什么都库和有版本是U打包的应用程序里面?
  2. 什么上述所有库和版本是由JBoss的7.1提供

现在图书馆是在两侧检查版本

如果应用程序和JBoss的版本是一样的,然后从应用程序(建议),该JAR(否则你可以在部署-structure.xml配置使用哪一个)

如果应用程序JAR和JBoss的版本不同的是,在这种情况下,你需要在部署描述符一个挑哪个配置。



Answer 8:

虽然复制粘贴和创建新的组件,我忘了更新的价值@Stateless(value)标注在新组件接受。 这意味着我有两个组件具有相同的名称,我得到这个错误。 希望它可以帮助别人。



文章来源: A component named 'XXX' is already defined in this module in JBoss 7.1.1