[resolvido]-Aplicação wildyFly 8.0 não sobre

23 respostas
java
G

Instalei o wildyFly 8.0, mas a aplicação não inicia, mostra 404

Segue abaixo algumas informações, precisando de algo basta pedir.

meu standalone.xml, parte de conexão com o banco de dados

<subsystem xmlns="urn:jboss:domain:datasources:2.0">
            <datasources>
                <datasource jta="true" jndi-name="java:jboss/datasources/desifsql" pool-name="desifsql" enabled="true" use-java-context="true">
                    <connection-url>jdbc:postgresql://localhost:5432/desif_utf8</connection-url>
                    <driver>postgresql</driver>
                    <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
                    <pool>
                        <min-pool-size>10</min-pool-size>
                        <max-pool-size>100</max-pool-size>
                        <prefill>true</prefill>
                    </pool>
                    <security>
                        <user-name>postgres</user-name>
                        <password>Maker@1</password>
                    </security>
                    <statement>
                        <prepared-statement-cache-size>32</prepared-statement-cache-size>
                        <share-prepared-statements>true</share-prepared-statements>
                    </statement>
                </datasource>
                <drivers>
                    <driver name="postgresql" module="org.postgresql">
                        <xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class>
                    </driver>
                </drivers>
            </datasources>
        </subsystem>

Meu arquivo de persistence.xml
<?xml version="1.0" encoding="UTF-8"?>

<persistence-unit name="desif" transaction-type="RESOURCE_LOCAL">
 
        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
        <jta-data-source>java:/desifsql</jta-data-source>
 
        <class>br.com.netsoft.desif.model.endereco.PaisEntity</class>
 
        <properties>
            <property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver" />
            <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost:5432/desif_utf8" />
            <property name="javax.persistence.jdbc.user" value="postgres" />
            <property name="javax.persistence.jdbc.password" value="Maker@1" />
 
            <property name="javax.persistence.validation.mode" value="none" />
 
            <property name="hibernate.hbm2ddl.auto" value="update" />
            <property name="hibernate.show_sql" value="true" />
            <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
        </properties>
    </persistence-unit>
</persistence>

Parte do log com erros:

ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) JBAS014613: Operation (“deploy”) failed - address: ([(“deployment” => “desif.war”)]) - failure description: {“JBAS014771: Services with missing/unavailable dependencies” => [“jboss.persistenceunit.“desif.war#desif”.FIRST_PHASE is missing [jboss.naming.context.java.desifsql]”]}

Conforme imagens, abaixo:

Banco de dados no servidor

Aqruivo war com falha

Erro 404

Arquivo jax e o xml do banco de dados

23 Respostas

L

Você tem um datasource cujo JNDI é java:jboss/datasources/desifsql e no teu persistence.xml você refere, apenas, a um com o nome java:/desifsql.
Sugiro que altere, no wildfly, o nome do jndi para o mesmo do persistence.xml.

G

Obrigado @Luis_Augusto_Santos

Eu percebi isto, alterei.Mas o erro 404 continua.

Mas ainda é algo com banco de dados

L

Posta o log do servidor. Só com ele conseguimos ajudar.

G

Até então o único erro é este:

2017-03-22 20:12:06,427 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) JBAS014613: Operation (“deploy”) failed - address: ([(“deployment” => “desif.war”)]) - failure description: {“JBAS014771: Services with missing/unavailable dependencies” => [“jboss.naming.context.java.module.desif.desif.env.jdbc.desif_utf8 is missing [jboss.naming.context.java.module.desif.desif.DefaultDataSource]”]}

G

Entendi que ele não está achando o data source com o nome desif_utf8, mas ele existe.

L

E onde você utiliza este datasource?

G

Não entendi a pergunta.

G

no momento está no meu computador o banco de dados.

G

Alguém ?

G

Criei um novo banco de dados, em um outro postgres com outra porta e o wildfly não sobe de jeito nenhum.

L

Cara, a gente responde conforme consegue acessar o guj, ninguém fica aqui o tempo todo.
Segundo este tópico, o problema é que não houve deploy do driver do banco de dados.
Você fez o deploy do driver do postgres corretamente?

G

Sim @Luis_Augusto_Santos, eu sei disto.

É porque estou tentando subir uma aplicação a um bom tempo. Estranho que em no spring foi rápido.

Não seria nesta imagem acima ?

L

Existem diferenças conceituais muito expressivas entre spring e jee e isto é um dos problemas que você está enfrentando. O spring, naas versões mais atuais é muito mais user friendly que o jee. Não por não precisar de um AS, mas, por pegar conceitos deste e do jee, enbalá-los e deixá-los pronto para uso.
No caso do jee, jpa, cdi, jsf, jms, ejb e afins, você é obrigado a entendero conceito e usar as ferramentas de acordo com a cartilha. Qualquer ponto fora do lugar já desanda tudo.
Por quê é um problema pra ti? Você não estudou os conceitoa, nao tentou entender como o jee trata isto ou aquilo. É natural e compreensível que aja desta forma. Mas, se realmente quer fazer funcionar, comece esquecendo o spring e focando no jee.

F

na linha driver não deveria ser:

<driver>org.postgresql.Driver</driver>

?

L

Deveria

F

Pode ser simplesmente por este motivo que não esta iniciando.

G

Entendi um pouco o que está falando.

Ontem comprei o pacote de cursos, vou começar a estudar.

F

Tentou a alteração que citei acima?

L
<?xml version="1.0" encoding="UTF-8"?>
    <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="desif" transaction-type="RESOURCE_LOCAL">

        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
        <jta-data-source>java:/desifsql</jta-data-source>

        <class>br.com.netsoft.desif.model.endereco.PaisEntity</class>

        <properties>
            <property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver" />
            <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost:5432/desif_utf8" />
            <property name="javax.persistence.jdbc.user" value="postgres" />
            <property name="javax.persistence.jdbc.password" value="Maker@1" />

            <property name="javax.persistence.validation.mode" value="none" />

            <property name="hibernate.hbm2ddl.auto" value="update" />
            <property name="hibernate.show_sql" value="true" />
            <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
        </properties>
    </persistence-unit>
</persistence>

@Felipe_Pedrosa, na verdade, não.
Ele está tentando utilizar um datasource, nenhuma propriedade de conexão com o banco de dados deveria estar definida ali.
O persistence.xml deveria estar assim

<?xml version="1.0" encoding="UTF-8"?>
<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="desif" transaction-type="JTA">

        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
        <jta-data-source>java:/desifsql</jta-data-source>

        <class>br.com.netsoft.desif.model.endereco.PaisEntity</class>

        <properties>
            <property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver" />
            <property name="javax.persistence.validation.mode" value="none" />
            <property name="hibernate.hbm2ddl.auto" value="update" />
            <property name="hibernate.show_sql" value="true" />
            <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
        </properties>
    </persistence-unit>
</persistence>
G

Sim e não adiantou

G

O erro mudou

10:02:01,173 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-1) MSC000001: Failed to start service jboss.undertow.deployment.default-server.default-host./desif: org.jboss.msc.service.StartException in service jboss.undertow.deployment.default-server.default-host./desif: Failed to start service

at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1904) [jboss-msc-1.2.0.Final.jar:1.2.0.Final]

at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [rt.jar:1.8.0_121]

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [rt.jar:1.8.0_121]

at java.lang.Thread.run(Unknown Source) [rt.jar:1.8.0_121]

Caused by: java.lang.RuntimeException: java.lang.IllegalStateException: Unable to access CDI

at io.undertow.servlet.core.DeploymentManagerImpl.deploy(DeploymentManagerImpl.java:216)

at org.wildfly.extension.undertow.deployment.UndertowDeploymentService.startContext(UndertowDeploymentService.java:86)

at org.wildfly.extension.undertow.deployment.UndertowDeploymentService.start(UndertowDeploymentService.java:71)

at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948) [jboss-msc-1.2.0.Final.jar:1.2.0.Final]

at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881) [jboss-msc-1.2.0.Final.jar:1.2.0.Final]

 3 more

Caused by: java.lang.IllegalStateException: Unable to access CDI

at javax.enterprise.inject.spi.CDI.current(CDI.java:65)

at org.jboss.weld.servlet.WeldInitialListener.contextInitialized(WeldInitialListener.java:85)

at org.jboss.weld.servlet.api.helpers.ForwardingServletListener.contextInitialized(ForwardingServletListener.java:34)

at org.jboss.weld.environment.servlet.EnhancedListener.onStartup(EnhancedListener.java:63)

at io.undertow.servlet.core.DeploymentManagerImpl.deploy(DeploymentManagerImpl.java:176)

 7 more

10:02:01,183 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) JBAS014613: Operation (“deploy”) failed - address: ([(“deployment” => “desif.war”)]) - failure description: {“JBAS014671: Failed services” => {“jboss.undertow.deployment.default-server.default-host./desif” => “org.jboss.msc.service.StartException in service jboss.undertow.deployment.default-server.default-host./desif: Failed to start service
Caused by: java.lang.RuntimeException: java.lang.IllegalStateException: Unable to access CDI
Caused by: java.lang.IllegalStateException: Unable to access CDI”}}

L

Segundo este tópico, o erro é proveniente da inclusão de artefatos referentes ao CDI.
Como o CDI se utilizará de recursos disponibilizados pelo Wildfly, você deve remover estas dependências ou incluir a tag

<scope>provided</scope>

A cada um dos artefatos referentes ao CDI.
Ah, talvez ocorram erros semelhantes com relação a outros artefatos, daí já tem um norte para resolver.

G

Depois de um bom tempo, achei este tópico

Criei conforme o autor disse e fui implemetando depedencia por depdencia.

Menos esta que entendi que é para tomcat

JBoss/Weld implementação de referência do CDI para Servlet Container(Exemplo:Tomcat)
dependency>
<groupId>org.jboss.weld.servlet</groupId>
<artifactId>weld-servlet</artifactId>
<version>2.2.6.Final</version>
<scope>runtime</scope>
</dependency>

Obrigado a todos

Criado 22 de março de 2017
Ultima resposta 23 de mar. de 2017
Respostas 23
Participantes 3