Dúvidas Aplicação Java EE: CDI (Weld) + WildFly 9

2 respostas
G

Caros colegas,
Preciso da ajuda de vocês quanto ao uso do CDI (Weld), JSF 2, JPA 2 e WildFly. Comecei a estudar o CDI e o projeto teste (foise) está sendo criado a partir maven 3, só que o simples fato de criá-lo e iniciar o servidor WildFly causa o erro abaixo:

7:48:35,893 ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool  77) MSC000001: Failed to start service jboss.undertow.deployment.default-server.default-host./foise: org.jboss.msc.service.StartException in service jboss.undertow.deployment.default-server.default-host./foise: java.lang.RuntimeException: java.lang.IllegalStateException: Unable to access CDI

at org.wildfly.extension.undertow.deployment.UndertowDeploymentService$1.run(UndertowDeploymentService.java:85)

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)

at java.util.concurrent.FutureTask.run(FutureTask.java:266)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

at java.lang.Thread.run(Thread.java:745)

at org.jboss.threads.JBossThread.run(JBossThread.java:320)

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

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

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

at org.wildfly.extension.undertow.deployment.UndertowDeploymentService$1.run(UndertowDeploymentService.java:82)

 6 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:97)

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

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

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

 8 more

17:48:35,908 ERROR [org.jboss.as.controller.management-operation] (DeploymentScanner-threads - 1) WFLYCTL0013: Operation (“deploy”) failed - address: ([(“deployment” => “foise.war”)]) - failure description: {“WFLYCTL0080: Failed services” => {“jboss.undertow.deployment.default-server.default-host./foise” => “org.jboss.msc.service.StartException in service jboss.undertow.deployment.default-server.default-host./foise: java.lang.RuntimeException: java.lang.IllegalStateException: Unable to access CDI
Caused by: java.lang.RuntimeException: java.lang.IllegalStateException: Unable to access CDI
Caused by: java.lang.IllegalStateException: Unable to access CDI”}}
17:48:36,143 INFO [org.jboss.as.server] (DeploymentScanner-threads - 1) WFLYSRV0010: Deployed “foise.war” (runtime-name : “foise.war”

Detalhe: sem criar nenhuma classe, serviço ou bean que seja !
JSF 2 (PF5.2) - JPA 2 (Hibernate 4.3) - CDI 1.2 (Weld) - WildFly 9

Sei que faltam configurações e por isso peço a ajuda de vocês, desde já obrigado.

2 Respostas

C

Olá,

Recomendo criar o projeto usando a versão mais recente do JBoss Forge:
cviniciusm@rf511sd6br:~/workspace$ ~/forge-distribution-3.0.0.Beta3/bin/forge
Using Forge at /home/cviniciusm/forge-distribution-3.0.0.Beta3

_____                    
   |  ___|__  _ __ __ _  ___ 
   | |_ / _ \| `__/ _` |/ _ \  \\
   |  _| (_) | | | (_| |  __/  //
   |_|  \___/|_|  \__, |\___| 
                   |__/      

JBoss Forge, version [ 3.0.0.Beta3 ] - JBoss, by Red Hat, Inc. [ http://forge.jboss.org ]

[workspace]$ project-new --named auron
***SUCCESS*** Project named 'auron' has been created.
[auron]$ javaee-setup --java-ee-version 7
***SUCCESS*** JavaEE 7 has been installed.
[auron]$ scaffold-setup --container WILDFLY
***SUCCESS*** Persistence (JPA) is installed.
***SUCCESS*** CDI has been installed.
***SUCCESS*** JavaServer Faces has been installed.
***SUCCESS*** Scaffold was setup successfully.
D

Faço das palavras do @cviniciusm, as minhas.
O Jboss Forge vai te ajudar nesse processo, ele prepara todo o ambiente que você precisa no Java EE.
Você pode até especificar em qual servidor de aplicação você planeja rodar sua aplicação.
Lembro também que o forge tem uma interface grafica para todo essa preparação de ambiente.

Bons estudos

Criado 3 de fevereiro de 2016
Ultima resposta 14 de mar. de 2016
Respostas 2
Participantes 3