29

我没有TimerServiceDispatcher在我的应用程序中创建 spring bean 名称。但是,这个模块中已经定义了JBossthrow 异常。TimerServiceDispatcher我不知道是什么问题。我错过了什么?我需要做什么?

我的应用程序使用 Seam 2.3、Spring 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-部署-结构.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> 

部署结构

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
4

10 回答 10

23

我有一个用@Singleton 和@Stateless 注释的bean,触发了这个错误。我的代码当然是错误的,但是像这样的消息和帖子让我在一段时间内走错了路。

于 2014-03-12T22:25:41.690 回答
14

我知道这个问题的答案。由于我的固执,我在 JBoss Support 上花了数周时间。他们计划在 EAP 6.2.x 版本中提供修复或至少更好的消息传递。

问题出现在 EJB Annotation 预处理器上——它将你的战争和编译到其中的库并扫描它们以查找 EJB 注释。一些 Jar 文件可以在 Manifest 中有一个“Classpath: ”条目。(或除“。”作为条目之一之外的其他内容)。这会导致注释预处理器再次愚蠢地处理 web-inf lib 中的所有 jar 文件。最后,它会找到一个它已经看到的带有 EJB 注释的 jar 文件,因为它已经在前面处理过——这会导致它抱怨“已经定义了一个名为 xxx 的组件”。

所以这里最令人沮丧的部分是它可能是一些你甚至不关心的旧 jar 文件,其中包含这个不必要的 Classpath 清单条目 - 并导致 JBoss 自身递归。

于 2014-01-24T21:27:11.083 回答
11

我遇到了同样的问题,但对我来说,建议的解决方案都没有帮助。我注意到EJB JAR存在twice( newest version and older version) 在WEB.WAR.

这是因为maveneclipse中父项目的clean操作没有级联到子项目。我通过"mvn clean"child project.

于 2017-01-25T13:55:47.673 回答
9

我在 IntelliJ 中遇到了同样的问题。原因是 IntelliJ 在 WEB-INF/classes 和作为单独的 Jar 文件在 WEB-INF/lib 中使用我的类创建了一个 WAR 文件。

我花了一些时间才弄清楚 IntelliJ 这样做的原因。原因在于对话文件 -> 项目结构 -> 工件: IntelliJ 项目结构对话

删除“vertrag-ui-war”编译输出后,错误不再发生。PS 我不知道 IntelliJ 为什么要进行此设置 - 我绝对没有设置此设置。

于 2018-02-13T12:19:40.257 回答
8

运行 Maven 目标:

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

在我们的案例中有所帮助:

[错误] 原因:java.lang.IllegalArgumentException:WFLYEE0040:此模块中已定义名为“xxx”的组件“}}

于 2015-12-10T09:36:49.397 回答
1

删除 @Singleton 为我修复了这个错误。不知道为什么。

于 2016-02-11T17:54:09.087 回答
0

问题不在于您创建TimeServiceDispatcher 它是seam framework 的一个类部分org.jboss.seam.async.TimerServiceDispatcher,它是一个seam fw 类。

现在关于错误。

当应用程序和服务器提供的库中存在冲突时,会发生此类错误。它在 JBoss 7.1 中非常普遍,也非常令人沮丧。

你得知道

  1. 您的应用程序中包含哪些所有库和版本?
  2. 以上所有库和版本均由 JBoss 7.1 提供

现在对于双方的库检查版本

如果应用程序和 JBoss 的版本相同,则从应用程序中删除该 jar(建议)(否则您可以在 deployment-structure.xml 中配置使用哪一个)

如果应用程序 jar 和 jboss 的版本不同,在这种情况下,您需要在部署描述符中配置选择哪一个。

于 2012-11-01T05:43:52.613 回答
0

这可能是由于部署了先前版本的 jar 而不是正确的 jar。当我删除目标文件夹的所有内容时,它就解决了。

于 2020-07-01T18:00:57.047 回答
0

答案帮助我找到了问题的根本原因。我正在使用 Arquillian,我正在通过

JavaArchive ja = ShrinkWrap.create(JavaArchive.class, "myejb.jar")
            .addPackages(true, "a.package.name")

并作为一个 Maven 依赖项

        File[] files = Maven.resolver()
            .addDependencies(
                MavenDependencies.createDependency("G:A:V", ScopeType.COMPILE, false),

因此出现了前面描述的错误。我只留下了maven依赖,错误消失了。

于 2020-08-25T09:34:23.693 回答
0

在复制粘贴和创建新组件时,我忘记更新@Stateless(value)注释在新组件中接受的值。这意味着我有两个同名的组件,我得到了这个错误。希望它可以帮助某人。

于 2015-12-07T09:52:02.330 回答