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
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.
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.
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.
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
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.
Confirme se os recursos injetados existem. Exemplo:
@EJB
private MeuServico servico;
→ Veja no log se o EJB foi implantado corretamente.
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.