Javax.faces.el.PropertyNotFoundException: Error testing property 'codigo' in bean of - JSF 1.1

4 respostas
dceschmidt

Boa Tarde pessoal,

Eu estou num projeto com JSF 1.1, num tela bem complexa, e para variar o erro só acontece em produção.

Estou tendo esta Exception:

javax.faces.el.PropertyNotFoundException: Error testing property 'codigo' in bean of type null at java.lang.Throwable.<init>(Throwable.java) at java.lang.Throwable.<init>(Throwable.java) at javax.faces.FacesException.<init>(FacesException.java:62) at com.sun.faces.el.PropertyResolverImpl.getType(PropertyResolverImpl.java:362) at com.sun.faces.el.impl.ArraySuffix.getType(ArraySuffix.java:260) at com.sun.faces.el.impl.ComplexValue.getType(ComplexValue.java:228) at com.sun.faces.el.ValueBindingImpl.getType(ValueBindingImpl.java:311) at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getConvertedValue(HtmlBasicInputRenderer.java:131) at com.sun.faces.renderkit.html_basic.MenuRenderer.convertSelectOneValue(MenuRenderer.java:205) at com.sun.faces.renderkit.html_basic.MenuRenderer.getConvertedValue(MenuRenderer.java:182) at javax.faces.component.UIInput.getConvertedValue(UIInput.java:733) at javax.faces.component.UIInput.validate(UIInput.java:658) at javax.faces.component.UIInput.executeValidate(UIInput.java:869) at javax.faces.component.UIInput.processValidators(UIInput.java:432) at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java) at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java) at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java) at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java) at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java) at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java) at javax.faces.component.UIForm.processValidators(UIForm.java:190) at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java) at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:362) at org.ajax4jsf.framework.ajax.AjaxViewRoot.access$201(AjaxViewRoot.java:53) at org.ajax4jsf.framework.ajax.AjaxViewRoot$3.invokeRoot(AjaxViewRoot.java:315) at org.ajax4jsf.framework.ajax.JsfOneOneInvoker.invokeOnRegionOrRoot(JsfOneOneInvoker.java:53) at org.ajax4jsf.framework.ajax.AjaxContext.invokeOnRegionOrRoot(AjaxContext.java:191) at org.ajax4jsf.framework.ajax.AjaxViewRoot.processValidators(AjaxViewRoot.java:329) at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:98) at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:245) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:110)

Eu já sei que é algum objeto no meu bean que não foi instânciado.

Porem no meu bean eu tenho um objeto que é muito complexo, e só com essa mensagem não consigo identificar qual é o objeto que está nulo.

Eu olhei pelo o forum procurando sobre essa Exception e vi que tem alguns logs que mostra a EL completa, como essa por exemplo:

javax.el.PropertyNotFoundException: /jsp/menu.xhtml @23,94 action="#{clienteController.handleUser}": Target Unreachable, identifier 'clienteController' resolved to null

Era exatamente isso que eu precisa, para poder identificar o meu problema.
Eu consigo esse nível de log no JSF 1.1? Ou é algo especifico de JSF 1.2 / 2.0?

Tem alguma outra maneira de conseguir a EL que causou a Exception?

Alguém poderia me ajudar?

Obrigado…

4 Respostas

Hebert_Coelho

tem algum get para “codigo”? Ou ele é seu MB?

Danilo_Carvalho

dceschmidt tudo bom!!!

Quando o exception acontece a sua pagina deveria mostrar o erro, nela você consegue o aquela linha de log que você esta querendo indicando a EL que esta tentando acessar o seu Bean.

Até mais.

Elizeu_Santos

verifique o get/set.

dceschmidt

Então… os get/set estão corretos, pois no ambiente de desenvolvimento está tudo funcionando perfeitamente.
Na realidade o problema deve ser quando algum dado que não está vindo do BD e deixando o objeto null dentro do meu bean.
Por isso que se tivesse alguma maneira de eu conseguir logar a EL completa, eu saberia direto onde está dando o erro.

jakefrog:
“codigo” é um atributo de algum objeto dentro do meu bean. Os get está correto.

Danilo:
realmente a EL não aparece no log, não sei se isso tem a ver com a versão do jsf.

Bom eu vou ter que dar um sysout no objeto complexo para tentar identificar o que está vindo nullo. Eu estava querendo evitar isso, até que caso no futuro acontesse algo parecido novamente, já teria como capturar direto no log.

Valeu…

Criado 24 de fevereiro de 2012
Ultima resposta 27 de fev. de 2012
Respostas 4
Participantes 4