我没有在我的应用程序中使用TimerServiceDispatcher
创建spring bean名称。但是,由于JBoss
导致的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部署-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>
深度结构
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
答案 0 :(得分:21)
我有一个用@Singleton和@Stateless注释的bean触发了这个错误。我的代码当然是错的,但是这样的消息和帖子让我走错了一段时间。
答案 1 :(得分:12)
我知道这个问题的答案。由于我的顽固性,我花了几周时间使用JBoss支持。他们计划使用EAP 6.2.x版本提供修复或至少更好的消息传递。
问题出现在EJB Annotation预处理器上 - 它将您的战争,以及编译到其中的lib并扫描它们以获取EJB注释。一些Jar文件可以在Manifest中为“Classpath:”创建一个条目。 (或其他任何东西,但'。'作为其中一个条目)。这会导致注释预处理器再次盲目地处理web-inf lib中的所有jar文件。最后,它会在它已经看到的带有EJB注释的jar文件中找到它,因为它已经被处理过了 - 这导致它抱怨“已经定义了一个名为xxx的组件”。
所以这里最令人沮丧的部分是它可能是一些你甚至不关心的旧jar文件中有不必要的Classpath清单条目 - 并导致JBoss自行递归。
答案 2 :(得分:6)
我有同样的问题,但对我来说,没有一个建议的解决方案有帮助。
我注意到EJB JAR
中存在twice
newest version and older version
WEB.WAR.
} {/ 1>
这是因为eclipse中父项目的maven
清理操作并没有级联到子项目。
我通过"mvn clean"
上的简单child project
来修复它。
答案 3 :(得分:4)
运行Maven目标:
wildfly:undeploy
clean
wildfly:deploy
在我们的案例中有所帮助:
[ERROR]引起:java.lang.IllegalArgumentException:WFLYEE0040:名为&#39; xxx&#39;的组件已在此模块中定义&#34;}}
答案 4 :(得分:4)
我在IntelliJ中遇到了同样的问题。原因是IntelliJ在WEB-INF / classes AND中创建了一个带有我的类的WAR文件,作为WEB-INF / lib中的单独Jar文件。
我花了一些时间才知道为什么IntelliJ会这样做。 原因在于对话文件 - &gt;项目结构 - &gt;工件:
删除&lt; vertrag-ui-war&#39;编译输出,错误不再发生。 附:我不知道为什么IntelliJ做了这个设置 - 我明确没有设置这个。
答案 5 :(得分:1)
删除@Singleton为我修复了这个错误。不知道为什么。
答案 6 :(得分:0)
问题不在于你创建TimeServiceDispatcher
它是一个接缝框架org.jboss.seam.async.TimerServiceDispatcher
的类部分,它是一个接缝fw类。
现在关于错误。
当应用程序和服务器提供的库中存在冲突时,会发生这种错误。它在JBoss 7.1中非常常见,也非常令人沮丧。
你需要知道
现在是两边的图书馆 检查版本
如果应用程序和JBoss的版本相同,那么从Application(建议)中删除该jar(否则你可以在deployment-structure.xml中配置哪一个使用)
如果应用程序jar和jboss的版本不同,那么在这种情况下,您需要在部署描述符中配置要选择哪一个。
答案 7 :(得分:0)
在复制粘贴和创建新组件时,我忘记更新@Stateless(value)
注释在新组件中接受的值。这意味着我有两个具有相同名称的组件,我收到了这个错误。希望它可以帮到某人。
答案 8 :(得分:0)
这可能是由于部署了早期版本的jar而不是正确的版本引起的。删除目标文件夹的所有内容后,此问题已解决。
答案 9 :(得分:0)
答案帮助我找到了问题的根本原因。 我正在使用Arquillian,并通过
将一个类添加到Web存档中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依赖,错误消失了。