Wildfly DuplicateServiceException
Posted
技术标签:
【中文标题】Wildfly DuplicateServiceException【英文标题】: 【发布时间】:2015-04-15 02:13:46 【问题描述】:我使用 Maven 原型创建了简单的 EAR 应用程序: wildfly-javaee7-webapp-ear-blank-archetype/8.2.0.Final
http://s17.postimg.org/cy8zbpiu7/Zrzut_ekranu_z_2015_02_13_23_15_10.png我从 wildFly 开始的日志:
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
23:08:04,244 INFO [org.jboss.modules] (main) JBoss Modules version 1.3.3.Final
23:08:04,690 INFO [org.jboss.msc] (main) JBoss MSC version 1.2.2.Final
23:08:04,787 INFO [org.jboss.as] (MSC service thread 1-8) JBAS015899: WildFly 8.2.0.Final "Tweek" starting
23:08:06,596 INFO [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 1) JBAS015014: Re-attempting failed deployment Przychodnia-ear.ear
23:08:06,601 INFO [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 1) JBAS015003: Found Przychodnia-ear.ear in deployment directory. To trigger deployment create a file called Przychodnia-ear.ear.dodeploy
23:08:06,628 INFO [org.jboss.as.server] (Controller Boot Thread) JBAS015888: Creating http management service using socket-binding (management-http)
23:08:06,662 INFO [org.xnio] (MSC service thread 1-7) XNIO version 3.3.0.Final
23:08:06,686 INFO [org.xnio.nio] (MSC service thread 1-7) XNIO NIO Implementation Version 3.3.0.Final
23:08:06,806 INFO [org.wildfly.extension.io] (ServerService Thread Pool -- 31) WFLYIO001: Worker 'default' has auto-configured to 8 core threads with 64 task threads based on your 4 available processors
23:08:06,813 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 32) JBAS010280: Activating Infinispan subsystem.
23:08:06,828 INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 27) JBAS010403: Deploying JDBC-compliant driver class org.h2.Driver (version 1.3)
23:08:06,864 INFO [org.jboss.remoting] (MSC service thread 1-7) JBoss Remoting version 4.0.6.Final
23:08:06,867 INFO [org.jboss.as.security] (ServerService Thread Pool -- 45) JBAS013171: Activating Security Subsystem
23:08:06,867 INFO [org.jboss.as.naming] (ServerService Thread Pool -- 40) JBAS011800: Activating Naming Subsystem
23:08:06,887 WARN [org.jboss.as.txn] (ServerService Thread Pool -- 46) JBAS010153: Node identifier property is set to the default value. Please make sure it is unique.
23:08:06,893 INFO [org.jboss.as.jsf] (ServerService Thread Pool -- 38) JBAS012615: Activated the following JSF Implementations: [main]
23:08:06,902 INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 27) JBAS010404: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)
23:08:06,905 INFO [org.jboss.as.security] (MSC service thread 1-8) JBAS013170: Current PicketBox version=4.0.21.Final
23:08:06,943 INFO [org.jboss.as.webservices] (ServerService Thread Pool -- 48) JBAS015537: Activating WebServices Extension
23:08:06,979 INFO [org.jboss.as.connector.logging] (MSC service thread 1-3) JBAS010408: Starting JCA Subsystem (IronJacamar 1.1.9.Final)
23:08:06,982 INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-4) JBAS010417: Started Driver service with driver-name = h2
23:08:06,982 INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-4) JBAS010417: Started Driver service with driver-name = postgres
23:08:07,024 INFO [org.wildfly.extension.undertow] (MSC service thread 1-3) JBAS017502: Undertow 1.1.0.Final starting
23:08:07,021 INFO [org.wildfly.extension.undertow] (ServerService Thread Pool -- 47) JBAS017502: Undertow 1.1.0.Final starting
23:08:07,101 INFO [org.jboss.as.naming] (MSC service thread 1-8) JBAS011802: Starting Naming Service
23:08:07,103 INFO [org.jboss.as.mail.extension] (MSC service thread 1-2) JBAS015400: Bound mail session [java:jboss/mail/Default]
23:08:07,294 INFO [org.wildfly.extension.undertow] (ServerService Thread Pool -- 47) JBAS017527: Creating file handler for path /opt/wildfly-8.2.0.Final/welcome-content
23:08:07,325 INFO [org.wildfly.extension.undertow] (MSC service thread 1-4) JBAS017525: Started server default-server.
23:08:07,342 INFO [org.wildfly.extension.undertow] (MSC service thread 1-8) JBAS017531: Host default-host starting
23:08:07,724 INFO [org.wildfly.extension.undertow] (MSC service thread 1-4) JBAS017519: Undertow HTTP listener default listening on /0.0.0.0:28080
23:08:08,159 INFO [org.jboss.as.server.deployment.scanner] (MSC service thread 1-5) JBAS015012: Started FileSystemDeploymentService for directory /opt/wildfly-8.2.0.Final/standalone/deployments
23:08:08,164 INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-6) JBAS010400: Bound data source [java:jboss/datasources/ExampleDS]
23:08:08,166 INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-6) JBAS010400: Bound data source [java:jboss/datasources/PostgreSql/Przychodnia]
23:08:08,171 INFO [org.jboss.as.server.deployment] (MSC service thread 1-7) JBAS015876: Starting deployment of "Przychodnia-ear.ear" (runtime-name: "Przychodnia-ear.ear")
23:08:08,361 INFO [org.jboss.as.server.deployment] (MSC service thread 1-5) JBAS015973: Starting subdeployment (runtime-name: "Przychodnia-ejb.jar")
23:08:08,362 INFO [org.jboss.as.server.deployment] (MSC service thread 1-1) JBAS015973: Starting subdeployment (runtime-name: "Przychodnia-web.war")
23:08:09,021 INFO [org.jboss.ws.common.management] (MSC service thread 1-2) JBWS022052: Starting JBoss Web Services - Stack CXF Server 4.3.2.Final
23:08:09,070 INFO [org.jboss.as.jpa] (MSC service thread 1-3) JBAS011401: Read persistence.xml for primary
23:08:09,210 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) MSC000001: Failed to start service jboss.deployment.unit."Przychodnia-ear.ear".FIRST_MODULE_USE: org.jboss.msc.service.StartException in service jboss.deployment.unit."Przychodnia-ear.ear".FIRST_MODULE_USE: JBAS018733: Failed to process phase FIRST_MODULE_USE of deployment "Przychodnia-ear.ear"
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:166) [wildfly-server-8.2.0.Final.jar:8.2.0.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_31]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_31]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_31]
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: JBAS010464: Exception deploying datasource java:jboss/datasources/PostgreSql/Przychodnia
at org.jboss.as.connector.deployers.ds.processors.DsXmlDeploymentInstallProcessor.deploy(DsXmlDeploymentInstallProcessor.java:140)
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:159) [wildfly-server-8.2.0.Final.jar:8.2.0.Final]
... 5 more
Caused by: org.jboss.msc.service.DuplicateServiceException: Service jboss.data-source.java:jboss/datasources/PostgreSql/Przychodnia is already registered
at org.jboss.msc.service.ServiceRegistrationImpl.setInstance(ServiceRegistrationImpl.java:158) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
at org.jboss.msc.service.ServiceControllerImpl.startInstallation(ServiceControllerImpl.java:235) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
at org.jboss.msc.service.ServiceContainerImpl.install(ServiceContainerImpl.java:767) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
at org.jboss.msc.service.ServiceTargetImpl.install(ServiceTargetImpl.java:223) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
at org.jboss.msc.service.ServiceControllerImpl$ChildServiceTarget.install(ServiceControllerImpl.java:2401) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
at org.jboss.msc.service.ServiceTargetImpl.install(ServiceTargetImpl.java:223) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
at org.jboss.msc.service.ServiceControllerImpl$ChildServiceTarget.install(ServiceControllerImpl.java:2401) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
at org.jboss.msc.service.ServiceBuilderImpl.install(ServiceBuilderImpl.java:317) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
at org.jboss.as.connector.deployers.ds.processors.DsXmlDeploymentInstallProcessor.startDataSource(DsXmlDeploymentInstallProcessor.java:338)
at org.jboss.as.connector.deployers.ds.processors.DsXmlDeploymentInstallProcessor.deploy(DsXmlDeploymentInstallProcessor.java:137)
... 6 more
23:08:09,220 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) JBAS014613: Operation ("deploy") failed - address: ([("deployment" => "Przychodnia-ear.ear")]) - failure description: "JBAS014671: Failed services" => "jboss.deployment.unit.\"Przychodnia-ear.ear\".FIRST_MODULE_USE" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"Przychodnia-ear.ear\".FIRST_MODULE_USE: JBAS018733: Failed to process phase FIRST_MODULE_USE of deployment \"Przychodnia-ear.ear\"
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: JBAS010464: Exception deploying datasource java:jboss/datasources/PostgreSql/Przychodnia
Caused by: org.jboss.msc.service.DuplicateServiceException: Service jboss.data-source.java:jboss/datasources/PostgreSql/Przychodnia is already registered"
23:08:09,281 INFO [org.jboss.as.server] (ServerService Thread Pool -- 28) JBAS018559: Deployed "Przychodnia-ear.ear" (runtime-name : "Przychodnia-ear.ear")
23:08:09,285 INFO [org.jboss.as.controller] (Controller Boot Thread) JBAS014774: Service status report
JBAS014777: Services which failed to start: service jboss.deployment.unit."Przychodnia-ear.ear".FIRST_MODULE_USE: org.jboss.msc.service.StartException in service jboss.deployment.unit."Przychodnia-ear.ear".FIRST_MODULE_USE: JBAS018733: Failed to process phase FIRST_MODULE_USE of deployment "Przychodnia-ear.ear"
23:08:09,411 INFO [org.jboss.as] (Controller Boot Thread) JBAS015961: Http management interface listening on http://127.0.0.1:9990/management
23:08:09,417 INFO [org.jboss.as] (Controller Boot Thread) JBAS015951: Admin console listening on http://127.0.0.1:9990
23:08:09,418 ERROR [org.jboss.as] (Controller Boot Thread) JBAS015875: WildFly 8.2.0.Final "Tweek" started (with errors) in 5696ms - Started 227 of 280 services (3 services failed or missing dependencies, 88 services are lazy, passive or on-demand)
23:08:09,568 INFO [org.jboss.as.server.deployment] (MSC service thread 1-1) JBAS015974: Stopped subdeployment (runtime-name: Przychodnia-ejb.jar) in 27ms
23:08:09,571 INFO [org.jboss.as.server.deployment] (MSC service thread 1-3) JBAS015974: Stopped subdeployment (runtime-name: Przychodnia-web.war) in 29ms
23:08:09,573 INFO [org.jboss.as.server.deployment] (MSC service thread 1-3) JBAS015877: Stopped deployment Przychodnia-ear.ear (runtime-name: Przychodnia-ear.ear) in 32ms
23:08:09,699 INFO [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS018558: Undeployed "Przychodnia-ear.ear" (runtime-name: "Przychodnia-ear.ear")
23:08:09,701 INFO [org.jboss.as.controller] (DeploymentScanner-threads - 2) JBAS014774: Service status report
JBAS014775: New missing/unsatisfied dependencies:
service jboss.module.service."deployment.Przychodnia-ear.ear.Przychodnia-ejb.jar".main (missing) dependents: [service jboss.deployment.subunit."Przychodnia-ear.ear"."Przychodnia-ejb.jar".FIRST_MODULE_USE]
service jboss.module.service."deployment.Przychodnia-ear.ear.Przychodnia-web.war".main (missing) dependents: [service jboss.deployment.subunit."Przychodnia-ear.ear"."Przychodnia-web.war".FIRST_MODULE_USE]
JBAS014777: Services which failed to start: service jboss.deployment.unit."Przychodnia-ear.ear".FIRST_MODULE_USE
23:08:14,325 INFO [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 2) JBAS015003: Found Przychodnia-ear.ear in deployment directory. To trigger deployment create a file called Przychodnia-ear.ear.dodeploy
Przychodnia-ds.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!-- This is an unmanaged datasource. It should be used for proofs of concept
or testing only. It uses H2, an in memory database that ships with JBoss
AS. -->
<datasources xmlns="http://www.jboss.org/ironjacamar/schema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.jboss.org/ironjacamar/schema http://docs.jboss.org/ironjacamar/schema/datasources_1_0.xsd">
<datasource jndi-name="java:jboss/datasources/PostgreSql/Przychodnia" pool-name="Przychodnia"
enabled="true" use-java-context="true">
<connection-url>jdbc:postgresql://localhost:5432/Przychodnia;DB_CLOSE_ON_EXIT=FALSE;DB_CLOSE_DELAY=-1</connection-url>
<driver>postgres</driver>
<security>
<user-name>postgres</user-name>
<password>postgres</password>
</security>
</datasource>
</datasources>
Persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1"
xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://xmlns.jcp.org/xml/ns/persistence
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="primary">
<!-- If you are running in a production environment, add a managed
data source, this example data source is just for development and testing! -->
<!-- The datasource is deployed as <EAR>/META-INF/Przychodnia-ds.xml, you
can find it in the source at ear/src/main/application/META-INF/Przychodnia-ds.xml -->
<jta-data-source>java:jboss/datasources/PostgreSql/Przychodnia</jta-data-source>
<properties>
<!-- Properties for Hibernate -->
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.show_sql" value="false" />
</properties>
</persistence-unit>
</persistence>
Maven 应用程序.xml:
<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/application_7.xsd" version="7">
<display-name>Przychodnia-ear</display-name>
<module>
<web>
<web-uri>Przychodnia-web.war</web-uri>
<context-root>/Przychodnia-web</context-root>
</web>
</module>
<module>
<ejb>Przychodnia-ejb.jar</ejb>
</module>
<library-directory>lib</library-directory>
</application>
【问题讨论】:
我有类似的问题。清理了这很简单。您在服务器配置(检查standalone.xml)和 Przychodnia-ds.xml 中注册了两次数据源。您只想选择一个地方吗?
【讨论】:
【参考方案2】:在您的../wildfly-X.X.X/standalone/configuration/standalone.xml
中,您将看到以下内容:
<deployments>
<deployment name="your_file.war" runtime-name="your_file.war">
<fs-archive path=".../your_file.war"/>
</deployment>
...
</deployments>
这会导致 DuplicateServiceException。只需将其删除。
【讨论】:
这对我来说非常有效。你能解释一下,为什么上面的行会导致 DuplicateServiceException。 编辑standalone.xml
后别忘了重启服务器。【参考方案3】:
我认为这里的问题是关于数据源条目的重复
Caused by: org.jboss.msc.service.DuplicateServiceException: Service jboss.data-source.java:jboss/datasources/PostgreSql/Przychodnia is already registered
看看这个帖子Advanced JAX-WS Security with Wildfly step by step
尝试查找位于 %WILDFLY_HOME%/standalone/configuration 中的standalone.xml
<subsystem xmlns="urn:jboss:domain:datasources:2.0">
<datasources>
<datasource jta="true" jndi-name="java:jboss/datasources/PostgreSql/Przychodnia" pool-name="ecoleDS" enabled="true" use-ccm="true">
<connection-url>jdbc:postgresql://localhost:5432/Przychodnia</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<driver>your postgres-connector</driver>
<security>
<user-name></user-name>
<password>****</password>
</security>
<validation>
<validate-on-match>false</validate-on-match>
<background-validation>false</background-validation>
</validation>
<timeout>
<set-tx-query-timeout>false</set-tx-query-timeout>
<blocking-timeout-millis>0</blocking-timeout-millis>
<idle-timeout-minutes>0</idle-timeout-minutes>
<query-timeout>0</query-timeout>
<use-try-lock>0</use-try-lock>
<allocation-retry>0</allocation-retry>
<allocation-retry-wait-millis>0</allocation-retry-wait-millis>
</timeout>
<statement>
<share-prepared-statements>false</share-prepared-statements>
</statement>
</datasource>
【讨论】:
以上是关于Wildfly DuplicateServiceException的主要内容,如果未能解决你的问题,请参考以下文章