Falta pouco!

0 dias

0 horas

0 min

0 seg

1
resposta

Um erro ocorreu ao realizar a injeção no recurso bean gerenciado firstHome

Bom dia, basicamente estou realizando uma migração de um servidor WildFly saindo da versão 10.0.1 e chegando ate a versão do WildFly 21.0.2. Alguem tem alguma luz sobre esse erro quando eu acesso apenas a pagina de login da aplicacao? Depois que o login é realizado aparece esse erro no firstHome, ja testei com algumas telas que eu tenho depois de realizar o login e algumas carregam.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Pelo print dá pra ver que o WildFly 21 está acusando:

javax.servlet.ServletException: Um erro ocorreu ao realizar a injeção do recurso no bean gerenciado firstHome

Isso indica que durante a criação do bean firstHome (provavelmente um @ManagedBean, @Named, @EJB ou @Inject) algo não está sendo resolvido. Como você está migrando do WildFly 10.0.1 → 21.0.2, algumas mudanças importantes podem impactar:

Principais pontos que causam esse erro em migração WildFly 10 21

  1. Mudança no suporte a JSF e CDI

    • WildFly 10 vinha com Mojarra 2.x e suporte legado ao @ManagedBean.
    • A partir do WildFly 15+ o recomendado é usar CDI (@Named, @Inject, @RequestScoped, etc.) ao invés de @ManagedBean.
    • Se o seu firstHome ainda usa @ManagedBean, pode falhar na injeção.
  2. Injeção de recursos JNDI / EJB

    • Se você injeta algo com @EJB ou @Resource, o JNDI name pode ter mudado entre as versões.
    • Verifique no standalone.xml ou via jboss-cli se o recurso está realmente disponível.
  3. Bibliotecas empacotadas

    • Muitas vezes projetos mais antigos empacotam jsf-api, jsf-impl ou libs duplicadas dentro do .war/.ear.
    • No WildFly 21 isso entra em conflito porque o servidor já provê essas libs atualizadas.
  4. Mudança em escopos

    • O WildFly 21 usa CDI 2.0+ e exige anotações corretas, como @ApplicationScoped, @SessionScoped (com implements Serializable), etc.
    • Beans mal configurados falham ao subir.

O que você pode verificar

  1. No bean firstHome, veja se está usando @ManagedBean.

    • Se sim, troque para CDI:

      @Named("firstHome")
      @RequestScoped // ou SessionScoped, ApplicationScoped dependendo do caso
      public class FirstHome {
          // ...
      }
      
    • Garanta que tenha o arquivo beans.xml em WEB-INF ou META-INF.

  2. Confirme se os recursos injetados existem. Exemplo:

    @EJB
    private MeuServico servico;
    

    → Veja no log se o EJB foi implantado corretamente.

  3. Ative logs mais verbosos de CDI no WildFly:

    /subsystem=logging/logger=org.jboss.weld:add(level=DEBUG)
    

    Isso ajuda a mostrar qual injeção falhou.

Minha hipótese principal: seu firstHome é um @ManagedBean legado e o WildFly 21 não está mais aceitando injeção nele. Convertendo para CDI (@Named + escopo) deve resolver.