Olá pessoal decidi usar o WildFly antigo JBoss AS para servidor de Aplicação.
Mas não estou conseguindo fazer ele funcionar com o JPA. Ao adicionar o arquivo persistence.xml ele retorna o seguinte erro:
[code]10:53:26,970 INFO [org.jboss.as.jpa] (MSC service thread 1-8) JBAS011401: Read persistence.xml for AbsoftPU
10:53:27,003 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-7) MSC000001: Failed to start service jboss.deployment.unit.“Quality-Web.war”.FIRST_MODULE_USE: org.jboss.msc.service.StartException in service jboss.deployment.unit.“Quality-Web.war”.FIRST_MODULE_USE: JBAS018733: Failed to process phase FIRST_MODULE_USE of deployment "Quality-Web.war"
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:166) [wildfly-server-8.1.0.Final.jar:8.1.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]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0]
at java.lang.Thread.run(Thread.java:744) [rt.jar:1.8.0]
Caused by: java.lang.IllegalArgumentException: Empty name segment is not allowed for jdbc:mysql:
at org.jboss.msc.service.ServiceName.of(ServiceName.java:90) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
at org.jboss.msc.service.ServiceName.append(ServiceName.java:117) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
at org.jboss.as.naming.deployment.ContextNames.buildServiceName(ContextNames.java:197)
at org.jboss.as.naming.deployment.ContextNames$BindInfo.<init>(ContextNames.java:209)
at org.jboss.as.naming.deployment.ContextNames$BindInfo.<init>(ContextNames.java:200)
at org.jboss.as.naming.deployment.ContextNames.bindInfoFor(ContextNames.java:138)
at org.jboss.as.naming.deployment.ContextNames.bindInfoForEnvEntry(ContextNames.java:184)
at org.jboss.as.jpa.processor.PersistenceUnitServiceHandler.deployPersistenceUnitPhaseOne(PersistenceUnitServiceHandler.java:494)
at org.jboss.as.jpa.processor.PersistenceUnitServiceHandler.addPuService(PersistenceUnitServiceHandler.java:264)
at org.jboss.as.jpa.processor.PersistenceUnitServiceHandler.handleWarDeployment(PersistenceUnitServiceHandler.java:191)
at org.jboss.as.jpa.processor.PersistenceUnitServiceHandler.deploy(PersistenceUnitServiceHandler.java:126)
at org.jboss.as.jpa.processor.PersistenceBeginInstallProcessor.deploy(PersistenceBeginInstallProcessor.java:52)
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:159) [wildfly-server-8.1.0.Final.jar:8.1.0.Final]
… 5 more
10:53:27,006 ERROR [org.jboss.as.controller.management-operation] (DeploymentScanner-threads - 1) JBAS014613: Operation ("deploy") failed - address: ([("deployment" => "Quality-Web.war")]) - failure description: {"JBAS014671: Failed services" => {"jboss.deployment.unit."Quality-Web.war".FIRST_MODULE_USE" => "org.jboss.msc.service.StartException in service jboss.deployment.unit."Quality-Web.war".FIRST_MODULE_USE: JBAS018733: Failed to process phase FIRST_MODULE_USE of deployment "Quality-Web.war"
Caused by: java.lang.IllegalArgumentException: Empty name segment is not allowed for jdbc:mysql:"}}
10:53:27,166 INFO [org.jboss.as.server] (DeploymentScanner-threads - 1) JBAS018559: Deployed "Quality-Web.war" (runtime-name : "Quality-Web.war")
10:53:27,166 INFO [org.jboss.as.controller] (DeploymentScanner-threads - 1) JBAS014774: Service status report
JBAS014777: Services which failed to start: service jboss.deployment.unit."Quality-Web.war".FIRST_MODULE_USE: org.jboss.msc.service.StartException in service jboss.deployment.unit."Quality-Web.war".FIRST_MODULE_USE: JBAS018733: Failed to process phase FIRST_MODULE_USE of deployment "Quality-Web.war"
[/code]
Procurei em forums do JBoss mais não consegui achar uma resposta para isto.
Esse persistence não tá errado não? Lembre-se que o WildFly é Java EE 7 e portanto adere a especificação JPA 2.1. Parece que o seu persistence é do JPA 1.0. Da uma investigada nisso.
Consegui resolver meu problema
Realmente o rodrigo.uchoa tinha razão meu persistence.xml estava para a versão interior.
Para resolver o problema primeiramente tive de criar um módulo no Jboss com o driver do Mysql
Criei uma pasta /com/mysql/main dentro da pasta de módulos do Jboss copiei o driver e criei um arquivo:
module.xml
Agora estou com outro problema, ao executar a aplicação ele me retorna o seguinte erro:
Caused by: javax.persistence.PersistenceException: Unable to execute JPA schema generation create command [create table Pessoa (id integer not null, cpf varchar(255), nome varchar(255), primary key (id))]
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'pessoa' already exists\"}}"
Pelo que eu vi ele diz que a tabela já existe !
Ele cria a tabela no banco atualiza normalmente se eu mudar algo nas entidades, mas sempre retorna este erro ao executar a aplicação.
Bom, o erro é claro. Você ta usando schema generation pra re-criar o banco quando o contexto sobe, mas aparentemente ta dando erro pois as tabelas já existem. Apagar antes ou simplesmente desistir do schema generation não te atende?
Eu sinceramente não lembro se o próprio persistence provider (hibernate) deveria apagar antes de re-criar.