[Resolvido] Erro no JBoss: org.jboss.msc.service.DuplicateServiceException

Olá. Estou estudando a aplicação web do Hebert e a converti pra rodar no servidor JBoss 7.1.1. Fiz as configurações no persistence.xml e no standalone.xml, mas quando mando rodar, me aparece o erro. Não entendo o que significa o “org.jboss.msc.service.DuplicateServiceException: Service jboss.jdbc-driver.mysql is already registered”, pois verifiquei na pasta modules do JBoss e só tem um JAR lá, o mysql-connector-java-5.1.31. Também olhei na pasta lib do projeto e não tinha nenhum conector MySQL lá.
O que pode ser?

Console do Eclipse:

16:19:18,896 Informações [org.jboss.modules] JBoss Modules version 1.1.1.GA
16:19:19,070 INFO  [org.jboss.msc] JBoss MSC version 1.0.2.GA
16:19:19,114 INFO  [org.jboss.as] JBAS015899: JBoss AS 7.1.1.Final "Brontes" starting
16:19:19,757 INFO  [org.xnio] XNIO Version 3.0.3.GA
16:19:19,757 INFO  [org.jboss.as.server] JBAS015888: Creating http management service using socket-binding (management-http)
16:19:19,766 INFO  [org.xnio.nio] XNIO NIO Implementation Version 3.0.3.GA
16:19:19,774 INFO  [org.jboss.remoting] JBoss Remoting version 3.2.3.GA
16:19:19,794 INFO  [org.jboss.as.logging] JBAS011502: Removing bootstrap log handlers
16:19:19,797 INFO  [org.jboss.as.configadmin] (ServerService Thread Pool -- 26) JBAS016200: Activating ConfigAdmin Subsystem
16:19:19,806 INFO  [org.jboss.as.naming] (ServerService Thread Pool -- 38) JBAS011800: Activating Naming Subsystem
16:19:19,809 INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 31) JBAS010280: Activating Infinispan subsystem.
16:19:19,810 INFO  [org.jboss.as.webservices] (ServerService Thread Pool -- 48) JBAS015537: Activating WebServices Extension
16:19:19,819 INFO  [org.jboss.as.security] (ServerService Thread Pool -- 44) JBAS013101: Activating Security Subsystem
16:19:19,820 INFO  [org.jboss.as.osgi] (ServerService Thread Pool -- 39) JBAS011940: Activating OSGi Subsystem
16:19:19,829 INFO  [org.jboss.as.security] (MSC service thread 1-16) JBAS013100: Current PicketBox version=4.0.7.Final
16:19:19,834 INFO  [org.jboss.as.connector] (MSC service thread 1-9) JBAS010408: Starting JCA Subsystem (JBoss IronJacamar 1.0.9.Final)
16:19:19,880 INFO  [org.jboss.as.naming] (MSC service thread 1-6) JBAS011802: Starting Naming Service
16:19:19,884 INFO  [org.jboss.as.mail.extension] (MSC service thread 1-2) JBAS015400: Bound mail session [java:jboss/mail/Default]
16:19:19,947 INFO  [org.jboss.ws.common.management.AbstractServerConfig] (MSC service thread 1-8) JBoss Web Services - Stack CXF Server 4.0.2.GA
16:19:19,981 INFO  [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 27) JBAS010403: Deploying JDBC-compliant driver class org.h2.Driver (version 1.3)
16:19:19,992 INFO  [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 27) JBAS010404: Deploying non-JDBC-compliant driver class com.mysql.jdbc.Driver (version 5.1)
16:19:19,994 INFO  [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 27) JBAS010404: Deploying non-JDBC-compliant driver class com.mysql.fabric.jdbc.FabricMySQLDriver (version 5.1)
16:19:19,997 ERROR [org.jboss.as.controller.management-operation] (ServerService Thread Pool -- 27) JBAS014612: Operation ("add") failed - address: ([
    ("subsystem" => "datasources"),
    ("jdbc-driver" => "mysql")
]): org.jboss.msc.service.DuplicateServiceException: Service jboss.jdbc-driver.mysql is already registered
	at org.jboss.msc.service.ServiceRegistrationImpl.setInstance(ServiceRegistrationImpl.java:154) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
	at org.jboss.msc.service.ServiceControllerImpl.startInstallation(ServiceControllerImpl.java:227) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
	at org.jboss.msc.service.ServiceContainerImpl.install(ServiceContainerImpl.java:560) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
	at org.jboss.msc.service.ServiceTargetImpl.install(ServiceTargetImpl.java:201) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
	at org.jboss.msc.service.ServiceControllerImpl$ChildServiceTarget.install(ServiceControllerImpl.java:2228) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
	at org.jboss.msc.service.ServiceBuilderImpl.install(ServiceBuilderImpl.java:307) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
	at org.jboss.as.controller.OperationContextImpl$ContextServiceBuilder.install(OperationContextImpl.java:955) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
	at org.jboss.as.connector.subsystems.datasources.JdbcDriverAdd.startDriverServices(JdbcDriverAdd.java:164) [jboss-as-connector-7.1.1.Final.jar:7.1.1.Final]
	at org.jboss.as.connector.subsystems.datasources.JdbcDriverAdd.performRuntime(JdbcDriverAdd.java:128) [jboss-as-connector-7.1.1.Final.jar:7.1.1.Final]
	at org.jboss.as.controller.AbstractAddStepHandler$1.execute(AbstractAddStepHandler.java:50) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
	at org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:385) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
	at org.jboss.as.controller.AbstractOperationContext.doCompleteStep(AbstractOperationContext.java:272) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
	at org.jboss.as.controller.AbstractOperationContext.completeStep(AbstractOperationContext.java:200) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
	at org.jboss.as.connector.subsystems.datasources.DataSourceEnable$1.execute(DataSourceEnable.java:91) [jboss-as-connector-7.1.1.Final.jar:7.1.1.Final]
	at org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:385) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
	at org.jboss.as.controller.AbstractOperationContext.doCompleteStep(AbstractOperationContext.java:272) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
	at org.jboss.as.controller.AbstractOperationContext.completeStep(AbstractOperationContext.java:200) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
	at org.jboss.as.connector.subsystems.datasources.DataSourceEnable$1.execute(DataSourceEnable.java:91) [jboss-as-connector-7.1.1.Final.jar:7.1.1.Final]
	at org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:385) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
	at org.jboss.as.controller.AbstractOperationContext.doCompleteStep(AbstractOperationContext.java:272) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
	at org.jboss.as.controller.AbstractOperationContext.completeStep(AbstractOperationContext.java:200) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
	at org.jboss.as.controller.ParallelBootOperationStepHandler$ParallelBootTask.run(ParallelBootOperationStepHandler.java:311) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [rt.jar:1.7.0_45]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [rt.jar:1.7.0_45]
	at java.lang.Thread.run(Unknown Source) [rt.jar:1.7.0_45]
	at org.jboss.threads.JBossThread.run(JBossThread.java:122) [jboss-threads-2.0.0.GA.jar:2.0.0.GA]

16:19:20,062 INFO  [org.apache.coyote.http11.Http11Protocol] (MSC service thread 1-11) Starting Coyote HTTP/1.1 on http-localhost-127.0.0.1-8080

Meu persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
	xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">

	<persistence-unit name="JSFCrudPU" transaction-type="RESOURCE_LOCAL"> 
		<provider>org.hibernate.ejb.HibernatePersistence</provider>
		<non-jta-data-source>java:jboss/datasources/JSFCrudApp</non-jta-data-source>
		
		<properties>			
			<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />			
			<property name="hibernate.connection.shutdown" value="true" />
			<property name="hibernate.hbm2ddl.auto" value="update" />
			<property name="hibernate.show_sql" value="false" />
            <property name="hibernate.format_sql" value="false"/>
		</properties>
	</persistence-unit>
</persistence>

E o standalone.xml:

<datasources>
                <datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
                    <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</connection-url>
                    <driver>h2</driver>
                    <security>
                        <user-name>sa</user-name>
                        <password>sa</password>
                    </security>
                </datasource>
				<datasource jndi-name="java:jboss/datasources/JSFCrudApp" pool-name="JSFCrudApp" enabled="true" use-java-context="true">
                    <connection-url>jdbc:mysql://localhost:3306/jsfcruddb</connection-url>
                    <driver>mysql</driver>
                    <security>
                        <user-name>root</user-name>
                        <password>root</password>
                    </security>
                </datasource>
                <drivers>
                    <driver name="h2" module="com.h2database.h2">
                        <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
                    </driver>
					<driver name="mysql" module="com.mysql">
                    	<xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
                    </driver>
                </drivers>
</datasources>

module.xml do JAR:

<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ JBoss, Home of Professional Open Source.
  ~ Blá blá blá...
  -->
<module xmlns="urn:jboss:module:1.0" name="com.mysql">
   <resources>
     <resource-root path="mysql-connector-java-5.1.31.jar"/>
   </resources>
   <dependencies>
     <module name="javax.api"/>
	 <module name="javax.transaction.api"/>
	 <module name="javax.servlet.api" optional="true"/>
   </dependencies>
 </module>

Estou com o mesmo problema tem semanas, alguém poderia dar uma luz? olhem meu log…

[code]19:23:14,292 Informações [org.jboss.modules] JBoss Modules version 1.1.1.GA
19:23:14,587 INFO [org.jboss.msc] JBoss MSC version 1.0.2.GA
19:23:14,661 INFO [org.jboss.as] JBAS015899: JBoss AS 7.1.1.Final “Brontes” starting
19:23:15,415 WARN [org.jboss.as.threads] JBAS012400: The ‘per-cpu’ attribute is no longer supported. The value [10,000000] of the ‘count’ attribute is being combined with the value [20,000000] of the ‘per-cpu’ attribute and the current processor count [2] to derive a new value of [50] for ‘count’.
19:23:15,418 WARN [org.jboss.as.threads] JBAS012400: The ‘per-cpu’ attribute is no longer supported. The value [10,000000] of the ‘count’ attribute is being combined with the value [20,000000] of the ‘per-cpu’ attribute and the current processor count [2] to derive a new value of [50] for ‘count’.
19:23:15,420 WARN [org.jboss.as.threads] JBAS012400: The ‘per-cpu’ attribute is no longer supported. The value [10,000000] of the ‘count’ attribute is being combined with the value [20,000000] of the ‘per-cpu’ attribute and the current processor count [2] to derive a new value of [50] for ‘count’.
19:23:15,423 WARN [org.jboss.as.threads] JBAS012400: The ‘per-cpu’ attribute is no longer supported. The value [10,000000] of the ‘count’ attribute is being combined with the value [20,000000] of the ‘per-cpu’ attribute and the current processor count [2] to derive a new value of [50] for ‘count’.
19:23:15,425 WARN [org.jboss.as.threads] JBAS012400: The ‘per-cpu’ attribute is no longer supported. The value [10,000000] of the ‘count’ attribute is being combined with the value [20,000000] of the ‘per-cpu’ attribute and the current processor count [2] to derive a new value of [50] for ‘count’.
19:23:15,427 WARN [org.jboss.as.threads] JBAS012400: The ‘per-cpu’ attribute is no longer supported. The value [10,000000] of the ‘count’ attribute is being combined with the value [20,000000] of the ‘per-cpu’ attribute and the current processor count [2] to derive a new value of [50] for ‘count’.
19:23:15,432 WARN [org.jboss.as.jmx] JBAS011305: is no longer supporting. should be used instead to allow remote connections via JBoss Remoting.
19:23:15,826 WARN [org.jboss.as.server] JBAS015883: No security realm defined for native management service; all access will be unrestricted.
19:23:15,832 INFO [org.xnio] XNIO Version 3.0.3.GA
19:23:15,837 INFO [org.jboss.as.server] JBAS015885: Creating http management service using network interface (management) and port (9990)
19:23:15,841 WARN [org.jboss.as.server] JBAS015884: No security realm defined for http management service; all access will be unrestricted.
19:23:15,844 INFO [org.xnio.nio] XNIO NIO Implementation Version 3.0.3.GA
19:23:15,853 INFO [org.jboss.remoting] JBoss Remoting version 3.2.3.GA
19:23:15,895 INFO [org.jboss.as.logging] JBAS011502: Removing bootstrap log handlers
19:23:15,933 INFO [org.jboss.as.remoting] (MSC service thread 1-2) JBAS017100: Listening on /127.0.0.1:9999
19:23:15,934 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool – 26) JBAS010280: Activating Infinispan subsystem.
19:23:15,953 INFO [org.jboss.as.naming] (ServerService Thread Pool – 31) JBAS011800: Activating Naming Subsystem
19:23:15,979 INFO [org.jboss.as.security] (ServerService Thread Pool – 37) JBAS013101: Activating Security Subsystem
19:23:15,986 INFO [org.jboss.as.osgi] (ServerService Thread Pool – 33) JBAS011940: Activating OSGi Subsystem
19:23:16,054 INFO [org.jboss.as.connector] (MSC service thread 1-3) JBAS010408: Starting JCA Subsystem (JBoss IronJacamar 1.0.9.Final)
19:23:16,070 INFO [org.jboss.as.security] (MSC service thread 1-2) JBAS013100: Current PicketBox version=4.0.7.Final
19:23:16,252 INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool – 22) JBAS010403: Deploying JDBC-compliant driver class org.h2.Driver (version 1.3)
19:23:16,259 INFO [org.jboss.as.naming] (MSC service thread 1-1) JBAS011802: Starting Naming Service
19:23:16,328 INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool – 22) JBAS010404: Deploying non-JDBC-compliant driver class com.mysql.jdbc.Driver (version 5.1)
19:23:16,345 INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool – 22) JBAS010404: Deploying non-JDBC-compliant driver class com.mysql.fabric.jdbc.FabricMySQLDriver (version 5.1)
19:23:16,355 ERROR [org.jboss.as.controller.management-operation] (ServerService Thread Pool – 22) JBAS014612: Operation (“add”) failed - address: ([
(“subsystem” => “datasources”),
(“jdbc-driver” => “com.mysql”)
]): org.jboss.msc.service.DuplicateServiceException: Service jboss.jdbc-driver.com_mysql is already registered
OpenJDK 64-Bit Server VM warning: You have loaded library /home/italo/servers/jboss/jboss-as-7.1.1.Final/modules/org/jboss/as/web/main/lib/linux-x86_64/libcrypto.so which might have disabled stack guard. The VM will try to fix the stack guard now.
It’s highly recommended that you fix the library with 'execstack -c ', or link it with ‘-z noexecstack’.
at org.jboss.msc.service.ServiceRegistrationImpl.setInstance(ServiceRegistrationImpl.java:154) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
at org.jboss.msc.service.ServiceControllerImpl.startInstallation(ServiceControllerImpl.java:227) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
at org.jboss.msc.service.ServiceContainerImpl.install(ServiceContainerImpl.java:560) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
at org.jboss.msc.service.ServiceTargetImpl.install(ServiceTargetImpl.java:201) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
at org.jboss.msc.service.ServiceControllerImpl$ChildServiceTarget.install(ServiceControllerImpl.java:2228) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
at org.jboss.msc.service.ServiceBuilderImpl.install(ServiceBuilderImpl.java:307) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
at org.jboss.as.controller.OperationContextImpl$ContextServiceBuilder.install(OperationContextImpl.java:955) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.as.connector.subsystems.datasources.JdbcDriverAdd.startDriverServices(JdbcDriverAdd.java:164) [jboss-as-connector-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.as.connector.subsystems.datasources.JdbcDriverAdd.performRuntime(JdbcDriverAdd.java:128) [jboss-as-connector-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.as.controller.AbstractAddStepHandler$1.execute(AbstractAddStepHandler.java:50) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:385) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.as.controller.AbstractOperationContext.doCompleteStep(AbstractOperationContext.java:272) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.as.controller.AbstractOperationContext.completeStep(AbstractOperationContext.java:200) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.as.connector.subsystems.datasources.DataSourceEnable$1.execute(DataSourceEnable.java:91) [jboss-as-connector-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:385) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.as.controller.AbstractOperationContext.doCompleteStep(AbstractOperationContext.java:272) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.as.controller.AbstractOperationContext.completeStep(AbstractOperationContext.java:200) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.as.connector.subsystems.datasources.DataSourceEnable$1.execute(DataSourceEnable.java:91) [jboss-as-connector-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:385) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.as.controller.AbstractOperationContext.doCompleteStep(AbstractOperationContext.java:272) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.as.controller.AbstractOperationContext.completeStep(AbstractOperationContext.java:200) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.as.controller.ParallelBootOperationStepHandler$ParallelBootTask.run(ParallelBootOperationStepHandler.java:311) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_55]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_55]
at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_55]
at org.jboss.threads.JBossThread.run(JBossThread.java:122) [jboss-threads-2.0.0.GA.jar:2.0.0.GA]

19:23:16,867 INFO [org.apache.coyote.http11.Http11AprProtocol] (MSC service thread 1-2) Starting Coyote HTTP/1.1 on http-localhost-127.0.0.1-8080

Os conectores versão 5.1.30+ precisam declarar no standalone.xml

com.mysql.jdbc.jdbc2.optional.MysqlXADataSource com.mysql.jdbc.Driver

https://issues.jboss.org/browse/WFLY-3218

[quote=marcelmm]Os conectores versão 5.1.30+ precisam declarar no standalone.xml

com.mysql.jdbc.jdbc2.optional.MysqlXADataSource com.mysql.jdbc.Driver

https://issues.jboss.org/browse/WFLY-3218[/quote]

Desculpe ter demorado responder, mas era exatamente isso que o marcelmm disse, basta deixar o driver do standalone igual ao dele para voltar a funcionar. No WildFly, deixando só assim ele funciona:

<driver name="mysql" module="com.mysql"> <xa-datasource-class>com.mysql.jdbc.Driver</xa-datasource-class> </driver>

Não testei no JBoss 7 mas acho que roda tranquilo também. Muito obrigado.

A respeito do JAR do MySQL duplicado, além de observar se ele está cadastrado em modules do JBoss ou dentro da pasta lib do projeto, é importante observar o pom.xml no caso de quem estiver usando Maven, visto que no deploy ele vai copiar tudo pra lib. Mas isso é apenas caso surja algum conflito de versões que não parece ter sentido.

Até a próxima.