Java EE: Um erro ocorreu ao realizar a injeção de recurso no bean gerenciado

bom dia, implementei um simples formulario que recebe um parametro via FacesContext.getCurrentInstance()

no entanto quando eu vou submeter esse formularo o seguinte erro me surge

mar 28, 2020 3:07:36 PM com.sun.faces.lifecycle.ProcessValidationsPhase execute
ADVERTÊNCIA: Um erro ocorreu ao realizar a injeção de recurso no bean gerenciado enderecoMB
com.sun.faces.mgbean.ManagedBeanCreationException: Um erro ocorreu ao realizar a injeção de recurso no bean gerenciado enderecoMB
	at com.sun.faces.mgbean.BeanBuilder.invokePostConstruct(BeanBuilder.java:227)
	at com.sun.faces.mgbean.BeanBuilder.build(BeanBuilder.java:103)
	at com.sun.faces.mgbean.BeanManager.createAndPush(BeanManager.java:409)
	at com.sun.faces.mgbean.BeanManager.create(BeanManager.java:269)
	at com.sun.faces.el.ManagedBeanELResolver.resolveBean(ManagedBeanELResolver.java:257)
	at com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:117)
	at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
	at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
	at org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:94)
	at org.apache.el.parser.AstValue.getTarget(AstValue.java:70)
	at org.apache.el.parser.AstValue.getType(AstValue.java:58)
	at org.apache.el.ValueExpressionImpl.getType(ValueExpressionImpl.java:174)
	at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:98)
	at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getConvertedValue(HtmlBasicInputRenderer.java:95)
	at javax.faces.component.UIInput.getConvertedValue(UIInput.java:1067)
	at javax.faces.component.UIInput.validate(UIInput.java:981)
	at javax.faces.component.UIInput.executeValidate(UIInput.java:1270)
	at javax.faces.component.UIInput.processValidators(UIInput.java:714)
	at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1261)
	at javax.faces.component.UIForm.processValidators(UIForm.java:253)
	at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1261)
	at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1261)
	at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1195)
	at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:658)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:688)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:609)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:818)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1623)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Unknown Source)
Caused by: com.sun.faces.spi.InjectionProviderException
	at com.sun.faces.vendor.WebContainerInjectionProvider.invokeAnnotatedMethod(WebContainerInjectionProvider.java:115)
	at com.sun.faces.vendor.WebContainerInjectionProvider.invokePostConstruct(WebContainerInjectionProvider.java:95)
	at com.sun.faces.mgbean.BeanBuilder.invokePostConstruct(BeanBuilder.java:221)

segue abaixo o meu arquivo JSF

<h:form id="formEndereco">
	<h:panelGrid columns="2">
		<h:outputLabel value="Logradouro: "></h:outputLabel>
		<h:inputText value="#{enderecoMB.endereco.logradouro}" />
		
		<h:outputLabel value="Cep: "></h:outputLabel>
		<h:inputText value="#{enderecoMB.endereco.cep}" />
		
		<h:commandLink action="#{enderecoMB.salvar}">TEste</h:commandLink>
	</h:panelGrid>
</h:form>

meu managed bean

@ManagedBean
public class EnderecoMB {
	
	private Usuario usuario = new Usuario();
	private Endereco endereco = new Endereco();
	private UsuarioDAO usuarioDAO = new UsuarioDAO();
	String idUsuario;
	
	@PostConstruct
	public void Init() {
		String idUsuario = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("idUsuario");
		usuario = usuarioDAO.pesquisar(Long.parseLong(idUsuario), Usuario.class);
		
		System.out.println("teste - " + usuario.getNome());
	}
	
	public String salvar() {
		System.out.println("teste - " + endereco.getLogradouro());
		System.out.println("teste - " + endereco.getCep());

		return "";
	}

	public Endereco getEndereco() {
		return endereco;
	}

	public void setEndereco(Endereco endereco) {
		this.endereco = endereco;
	}

	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	public UsuarioDAO getUsuarioDAO() {
		return usuarioDAO;
	}

	public void setUsuarioDAO(UsuarioDAO usuarioDAO) {
		this.usuarioDAO = usuarioDAO;
	}
}

DAO pesquisar

public Entity pesquisar(Long id, Class<Entity> entity) {
	Entity e = (Entity) em.find(entity, id);
	return e;
}

Manda a classe UsuarioDAO completa pra gente ver. Você está usando CDI no seu projeto?

1 curtida

Lucas, já deu certo! apenas mudei pra SessionScope funcionou! obrigado por tentar ajudar