12
respostas

Erro no carregar o WildFly depois de criar o banco livraria

Pessoal, por favor, me dê mais uma ajuda nesse curso!!

Estou usando jre 1.8, Wildlfy 10, mysql 8.011 O mesmo erro aconteceu também quando estava configurando para acessar WildFly com o Sqlserver 2017.

O servidor pede para criar o banco livraria, mas assim que crio o banco ocorre o erro abaixo? Alguém me da uma dica? Já esgotei todas possibilidades e não achei como resolve-lo. Obrigado!!!

18:21:30,553 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-5) MSC000001: Failed to start service jboss.deployment.unit."livraria.war".INSTALL: org.jboss.msc.service.StartException in service jboss.deployment.unit."livraria.war".INSTALL: WFLYSRV0153: Failed to process phase INSTALL of deployment "livraria.war"
    at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:154)
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)


Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: WFLYEE0041: Component class br.com.caelum.livraria.dao.LivroDao for component LivroDao has errors: 
WFLYJPA0033: Can't find a persistence unit named null in deployment "livraria.war"
12 respostas

Oi Huender, na última linha vi um:

WFLYJPA0033: Can't find a persistence unit named null in deployment "livraria.war"

Tudo indica que vocÊ não tem o persistence context certo, dá uma olhada no seu persistence.xml.

O erro indica que é coisa nele e tem que configurar, aqui tem um exemplo de config dele:

https://www.caelum.com.br/apostila-java-web/uma-introducao-pratica-ao-jpa-com-hibernate/#configurando-o-jpa-com-as-propriedades-do-banco

Dá um ctrl+F pra persistence-unit (:

Abraços!

Opa, tenho sim. Tanto que quando eu removo o Banco de dados livraria do mysql o wildFly reclama que não consta o banco livraria.

O problema é quando eu vou injetar o EntityManager ocorre esse erro.

Já tentei de tudo pra achar onde é esse erro. Mas não vai

Os projeto é o mesmo do curso. identico

Edit aqui: Desculpa vi só agora q vc falou que já tinha o arquivo, tenta só ver se as informações dentro dele estão certas?

Principalmente vê se a sua <persistence-unit name="nome-aqui"> tem de fato algo no atributo name.

To pensando oq mais pode ser também enquanto isso.

O que acontece é que o EntityManager precisa estar configurado, o arquivo de configuração dele é um arquivo que fica em:

src/META-INF/persistence.xml

Nesse arquivo vc define como vc vai se conectar ao banco. Ele é um arquivo bem chato de configurar na real, sempre tenho que olhar na internet pra configurar ele.

Veja esse exemplo dele:

<persistence 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"
    version="2.0">

 <persistence-unit name="tarefas">

   <!-- provedor/implementacao do JPA -->
   <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>

   <!-- entidade mapeada -->
   <class>br.com.caelum.tarefas.modelo.Tarefa</class>

   <properties>
    <!-- dados da conexao -->
     <property name="javax.persistence.jdbc.driver" 
             value="com.mysql.jdbc.Driver" />
    <property name="javax.persistence.jdbc.url" 
            value="jdbc:mysql://localhost/fj21" />
    <property name="javax.persistence.jdbc.user" 
            value="root" />
    <property name="javax.persistence.jdbc.password" 
            value="<SENHA DO BANCO AQUI>" />

     <!--  propriedades do hibernate -->
     <property name="hibernate.dialect" 
            value="org.hibernate.dialect.MySQL5InnoDBDialect" />
    <property name="hibernate.show_sql" value="true" />
    <property name="hibernate.format_sql" value="true" />

    <!--  atualiza o banco, gera as tabelas se for preciso -->
    <property name="hibernate.hbm2ddl.auto" value="update" />

   </properties>
 </persistence-unit>
</persistence>

Cria esse arquivo no diretório que falei e substitui as informações de conexão com o banco pelas suas, com isso ele já deve funcionar ou pelo menos apontar um erro diferente (:

Vou testar aqui, porém as configurações são com o EJB.

persitence.xml e Standalone.xml

Nesse momento estou tentando com as seguintes versões:

Servidor Mysql 5.1.73, jre 1.8, WildFly 10.

Nessa configuração a mensagem de erro é diferente. 10:46:27,765 ERROR [org.jboss.as.controller.management-operation] (ServerService Thread Pool -- 33) WFLYCTL0013: Operation ("add") failed - address: ([ ("subsystem" => "datasources"), ("jdbc-driver" => "mysql") ]) - failure description: "WFLYJCA0041: Failed to load module for driver [com.mysql]"

Meu lider, o persistence.xml está assim:

ejb - java beans - por isso nao esta igual ao que vc me mandou. Uso o Wildfly para injetar o EntityManager. Esse é o tema do curso. aula 3

<persistence 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"
    version="2.0">

    <persistence-unit name="livraria">

        <provider>org.hibernate.ejb.HibernatePersistence</provider>

        <jta-data-source>java:/livrariaDS</jta-data-source>

        <class>br.com.caelum.livraria.modelo.Autor</class>


        <properties>


            <!-- Configuracoes especificas do Hibernate -->
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
            <property name="hibernate.hbm2ddl.auto" value="updade" />
            <property name="hibernate.show_sql" value="true" />

        </properties>
    </persistence-unit>
</persistence>

Oi Huender, duas coisas, o persistence.xml não tem as credenciais do banco:

<property name="javax.persistence.jdbc.driver" 
             value="com.mysql.jdbc.Driver" />
    <property name="javax.persistence.jdbc.url" 
            value="jdbc:mysql://localhost/fj21" />
    <property name="javax.persistence.jdbc.user" 
            value="root" />
    <property name="javax.persistence.jdbc.password" 
            value="<SENHA DO BANCO AQUI>" />

Isso é bastante importante.

Outra, quando dá o erro com o mysql vc chegou a ver se o driver está certinho? Já tive problema com isso também.

fala meu líder, acho q vc n entendeu meu problema.

o persistence.xml não terá as credenciais do banco porque o curso é de EJB. As credenciais ficam no arquivo standalone.xml do serdidor WildFly.

O curso (projeto)não se trata de JPA e sim EJB A EJB é quem gerencia a jpa.

O driver carrega direitinho sim.

Mas eu acredito que o problema seja no arquivo persistence.xml sim, mas não relacionado as credencias do banco

Obrigado!!

Puuuuuuts, entendi, é verdade!

Olha o que eu achei no código Huender:

<property name="hibernate.hbm2ddl.auto" value="updade" />

Tá vendo q tá updade em vez de update, isso dá problema.

Eu já tinha corrido isso, mas não mudou o erro. Eu posso apagar o persistence.xml que não esta mudando nada.

O Wildfly consegue fazer a conexão com servidor mysql tanto que se não achar o banco reclama.

a impressão que tenho que ele não esta lendo o persistence.xml

esta na pasta META-INF igual pede no curso. Mas não injeta o Entitymanage. Dá esse erro que citei

Complicado. O curso é muito antigo. Preciso das configurações novas tando pro persistence.xml quanto pro standalone.xml e module.xml.

Meu líder, dê uma olhada no erro e analisa pra ver se vc acha o que é, por favor

16:09:45,477 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-6) MSC000001: Failed to start service jboss.deployment.unit."ejb.war".INSTALL: org.jboss.msc.service.StartException in service jboss.deployment.unit."ejb.war".INSTALL: WFLYSRV0153: Failed to process phase INSTALL of deployment "ejb.war"
    at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:154)
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: WFLYEE0041: Component class br.com.caelum.livraria.dao.AutorDAO for component AutorDAO has errors: 
WFLYJPA0033: Can't find a persistence unit named null in deployment "ejb.war"
    at org.jboss.as.ee.component.deployers.ModuleJndiBindingProcessor$1.handle(ModuleJndiBindingProcessor.java:157)
    at org.jboss.as.ee.component.ClassDescriptionTraversal.run(ClassDescriptionTraversal.java:54)
    at org.jboss.as.ee.component.deployers.ModuleJndiBindingProcessor.processClassConfigurations(ModuleJndiBindingProcessor.java:186)
    at org.jboss.as.ee.component.deployers.ModuleJndiBindingProcessor.deploy(ModuleJndiBindingProcessor.java:143)
    at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:147)
    ... 5 more

16:09:45,493 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("deploy") failed - address: ([("deployment" => "ejb.war")]) - failure description: {
    "WFLYCTL0080: Failed services" => {"jboss.deployment.unit.\"ejb.war\".INSTALL" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"ejb.war\".INSTALL: WFLYSRV0153: Failed to process phase INSTALL of deployment \"ejb.war\"
    Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: WFLYEE0041: Component class br.com.caelum.livraria.dao.AutorDAO for component AutorDAO has errors: 
WFLYJPA0033: Can't find a persistence unit named null in deployment \"ejb.war\""},
    "WFLYCTL0180: Services with missing/unavailable dependencies" => [
        "jboss.deployment.unit.\"ejb.war\".batch.environment is missing [jboss.deployment.unit.\"ejb.war\".beanmanager]",
        "jboss.deployment.unit.\"ejb.war\".weld.weldClassIntrospector is missing [jboss.deployment.unit.\"ejb.war\".beanmanager]"
    ]
}
16:09:45,521 INFO  [org.jboss.as.server] (ServerService Thread Pool -- 34) WFLYSRV0010: Deployed "ejb.war" (runtime-name : "ejb.war")
16:09:45,545 INFO  [org.jboss.as.controller] (Controller Boot Thread) WFLYCTL0183: Service status report
WFLYCTL0184:    New missing/unsatisfied dependencies:
      service jboss.deployment.unit."ejb.war".beanmanager (missing) dependents: [service jboss.deployment.unit."ejb.war".weld.weldClassIntrospector, service jboss.deployment.unit."ejb.war".batch.environment] 
WFLYCTL0186:   Services which failed to start:      service jboss.deployment.unit."ejb.war".INSTALL: org.jboss.msc.service.StartException in service jboss.deployment.unit."ejb.war".INSTALL: WFLYSRV0153: Failed to process phase INSTALL of deployment "ejb.war"

16:09:45,638 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0060: Http management interface listening on http://127.0.0.1:9990/management
16:09:45,638 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0051: Admin console listening on http://127.0.0.1:9990
16:09:45,638 ERROR [org.jboss.as] (Controller Boot Thread) WFLYSRV0026: WildFly Full 10.0.0.Final (WildFly Core 2.0.10.Final) started (with errors) in 4230ms - Started 300 of 589 services (3 services failed or missing dependencies, 374 services are lazy, passive or on-demand)
16:09:45,670 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-5) WFLYSRV0028: Stopped deployment ejb.war (runtime-name: ejb.war) in 8ms
16:09:45,736 INFO  [org.jboss.as.server] (DeploymentScanner-threads - 1) WFLYSRV0009: Undeployed "ejb.war" (runtime-name: "ejb.war")
16:09:45,737 INFO  [org.jboss.as.controller] (DeploymentScanner-threads - 1) WFLYCTL0183: Service status report
WFLYCTL0186:   Services which failed to start:      service jboss.deployment.unit."ejb.war".INSTALL

16:09:50,576 INFO  [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 1) WFLYDS0004: Found ejb.war in deployment directory. To trigger deployment create a file called ejb.war.dodeploy

Valeu pelos detalhes Huender!

Olhando a exception me deparei com isso:

WFLYCTL0180: Services with missing/unavailable dependencies" => [
        "jboss.deployment.unit.\"ejb.war\".batch.environment is missing [jboss.deployment.unit.\"ejb.war\".beanmanager]",
        "jboss.deployment.unit.\"ejb.war\".weld.weldClassIntrospector is missing [jboss.deployment.unit.\"ejb.war\".beanmanager]"
]

Missing dependencies... como está o seu pom.xml? Tá igual ao do curso? Pode ser algo de dependencias também.

Outro dia resolvi uma dúvida que eram dependências repetidas, será que pode ser algo do tipo? Ou dependências repetidas ou conflito de versão das dependências.

Foi importado do curso, esse projeto não tem o pom.xml, as dependecias do jpa já são carregadas pelo jboss WildFly.

Existem os seguintes arquivos de configurações do projeto.

PERSISTENCE.XML - do projeto META-INF

STANDALONE.XML do wildFly com as credenciais do banco e drivers

MODULE.XML - do wildFly para carregar as configurações do driver mysql. com\mysql\main\module.xml

Existe um erro em um desses 3 arquivos, mas como eu já disse, esse curso esta completamente defasado. As configurações são diferentes. utilizo jre8, mysql8 , connector mysql8, wildfly10