Bom estou brincando um pouco com JSF estou seguindo uma apostila que achei aqui mesmo no site da GUJ.
Mas acho que estou tendo algum problema no meu manage-bean meu erro é o seguinte:
16/01/2008 13:21:01 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet Faces Servlet threw exception
org.apache.jasper.el.JspPropertyNotFoundException: /buscar.jsp(15,3) '#{agenda.nome}' Target Unreachable, identifier 'agenda' resolved to null
at org.apache.jasper.el.JspValueExpression.getType(JspValueExpression.java:61)
at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getConvertedValue(HtmlBasicInputRenderer.java:81)
at javax.faces.component.UIInput.getConvertedValue(UIInput.java:934)
at javax.faces.component.UIInput.validate(UIInput.java:860)
at javax.faces.component.UIInput.executeValidate(UIInput.java:1065)
at javax.faces.component.UIInput.processValidators(UIInput.java:666)
at javax.faces.component.UIForm.processValidators(UIForm.java:229)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1033)
at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:662)
at org.ajax4jsf.component.AjaxViewRoot.access$201(AjaxViewRoot.java:57)
at org.ajax4jsf.component.AjaxViewRoot$3.invokeRoot(AjaxViewRoot.java:319)
at org.ajax4jsf.context.JsfOneOneInvoker.invokeOnRegionOrRoot(JsfOneOneInvoker.java:56)
at org.ajax4jsf.context.AjaxContextImpl.invokeOnRegionOrRoot(AjaxContextImpl.java:173)
at org.ajax4jsf.component.AjaxViewRoot.processValidators(AjaxViewRoot.java:333)
at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:100)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
Meu web.xml é o seguinte:
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" ><web-appxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"id="WebApp_ID"version="2.5"><display-name>MeindicaWebPortal</display-name><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.jsp</welcome-file></welcome-file-list><context-param><param-name>javax.faces.STATESAVING_METHOD</param-name><param-value>client</param-value></context-param><context-param><param-name>javax.faces.CONFIGFILES</param-name><param-value>/WEB-INF/faces-config.xml</param-value></context-param><listener><listener-class>com.sun.faces.config.ConfigureListener</listener-class></listener><servlet><servlet-name>FacesServlet</servlet-name><servlet-class>javax.faces.webapp.FacesServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>FacesServlet</servlet-name><url-pattern>*.jsf</url-pattern></servlet-mapping></web-app>
na tua classe AgendaDB existe a propriedade nome? se sim, existe os métodos get/set?
B
bdoweb
Então minha classe tem sim … Depois de mexer bastante o erro agora é outro … me parece minha propriedade managed-bean não está pegando …
Agora a minha pilha de erros é a seguinte:
<blockquote>17/01/2008 08:51:38 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet Faces Servlet threw exception
org.apache.jasper.el.JspPropertyNotFoundException: /buscar.jsp(15,3) ‘#{agenda.nome}’ Target Unreachable, identifier ‘agenda’ resolved to null
at org.apache.jasper.el.JspValueExpression.getType(JspValueExpression.java:61)
at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getConvertedValue(HtmlBasicInputRenderer.java:81)
at javax.faces.component.UIInput.getConvertedValue(UIInput.java:934)
at javax.faces.component.UIInput.validate(UIInput.java:860)
at javax.faces.component.UIInput.executeValidate(UIInput.java:1065)
at javax.faces.component.UIInput.processValidators(UIInput.java:666)
at javax.faces.component.UIForm.processValidators(UIForm.java:229)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1033)
at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:662)
at org.ajax4jsf.component.AjaxViewRoot.access$201(AjaxViewRoot.java:57)
at org.ajax4jsf.component.AjaxViewRoot$3.invokeRoot(AjaxViewRoot.java:319)
at org.ajax4jsf.context.JsfOneOneInvoker.invokeOnRegionOrRoot(JsfOneOneInvoker.java:56)
at org.ajax4jsf.context.AjaxContextImpl.invokeOnRegionOrRoot(AjaxContextImpl.java:173)
at org.ajax4jsf.component.AjaxViewRoot.processValidators(AjaxViewRoot.java:333)
at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:100)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
</blockquote>
Como eu poderia resolver isso?
Obrigado
R
renan_
o nome do metodo é “getNome()” ??
Att,
Renan
B
bdoweb
Tem sim cara ..... Minha classe AgendaDB é a seguinte:
packagebr.com.meindica.beans;importjava.sql.*;publicclassAgendaDB{privateStringnome=blank;privateStringendereco=blank;privateStringcidade=blank;privateStringtelefone=blank;privateStringresult_busca=blank;privateStringresult_inserir=blank;publicstaticfinalStringBUSCA_INVALIDA="failure";publicstaticfinalStringBUSCA_VALIDA="success";publicstaticfinalStringSUCESSO_INSERCAO="success";publicstaticfinalStringFALHA_INSERCAO="failure";staticConnectioncon=null;staticStatementstm=null;staticResultSetrs;staticprivateStringblank="";publicAgendaDB(){if(con==null){try{Class.forName("com.mysql.jdbc.Driver");con=DriverManager.getConnection("jdbc:mysql//127.0.0.1:3306/jsf","root","123456");}catch(SQLExceptione){System.err.println("Erro: "+e);con=null;}catch(ClassNotFoundExceptione){System.out.println("ClassNotFound...");e.printStackTrace();}}}publicStringcadastrar(){Stringresult_inserir=FALHA_INSERCAO;try{stm=con.createStatement();stm.execute("INSERT INTO pessoa(nome,endereco,cidade,telefone) VALUES ('"+nome+"','"+endereco+"','"+cidade+"','"+telefone+"')");stm.close();result_inserir=SUCESSO_INSERCAO;}catch(SQLExceptione){System.err.println("Erro: "+e);result_inserir=FALHA_INSERCAO;}returnresult_inserir;}publicStringbuscar()throwsSQLException{Stringresult_busca=BUSCA_INVALIDA;try{stm=con.createStatement();rs=stm.executeQuery("SELECT * FROM pessoa WHERE nome = '"+nome+"'");if(rs.next()){nome=rs.getString(1);endereco=rs.getString(2);cidade=rs.getString(3);telefone=rs.getString(4);result_busca=BUSCA_VALIDA;}elseresult_busca=BUSCA_INVALIDA;rs.close();stm.close();}catch(SQLExceptione){System.err.println("Erro: "+e);}returnresult_busca;}publicStringgetNome(){returnnome;}publicvoidsetNome(Stringnome){this.nome=nome;}publicStringgetCidade(){returncidade;}publicvoidsetCidade(Stringcidade){this.cidade=cidade;}publicStringgetEndereco(){returnendereco;}publicvoidsetEndereco(Stringendereco){this.endereco=endereco;}publicStringgetTelefone(){returntelefone;}publicvoidsetTelefone(Stringtelefone){this.telefone=telefone;}}
Alguém tem alguma ideia do que possa estar acontecendo?
R
renan_
Cara, se possivel coloque as linhas do .jsp correspondentes ao erro.
Att,
Renan
L
leandrokjava
este erro e no EL do framework.
org.apache.jasper.el.JspPropertyNotFoundException: /buscar.jsp(15,3) ‘#{agenda.nome}’ Target Unreachable, identifier ‘agenda’ resolved to null
verifique seu codigo .JSP correspondente, ou verifique se nos teus frameworks não tem algum jar rompendo o outro, algum tipo EL.
me lembro vagamente um projeto que fiz, utilizava jsf1.1 e richfaces aee tinha um jar que não me lembro o nome acho que era api-el.jar eu tirei ele e td deu certo e era um erro parecido, dava isso pq não aceitava null, mas primeiro verfique o teu jsp, se estiver td ok, tente isto que te falei.
aee poste ai pra nos oque aconteceu
t+
M
maurenginaldo
Cara,
pelo erro parece que ele está buscando a propriedade nome e está retornando null.
Faça um teste, inicie a variável nome com algum valor. Ex:
private String nome = "teste";
Posta aí o resultado.
L
Leonardo3001
Dá a impressão que o identificador ‘agenda’ não é encontrado. Eu chuto duas coisas:
A aplicação não encontrou a classe AgendaDB (ou o resultado da compilação está errado, inexistente ou em outro lugar).
A aplicação não encontrou o arquivo faces-config.xml (mas é menos provável).
F
Ferryman
Eai…
Essa é facil…
Target Unreachable, identifier ‘agenda’ resolved to null
Vc instanciou o Objeto Agenda no construtor do seu Managed Bean? Ele ta tentando chamar o getNome do objeto “agenda” e deve ta tomando nullPointerExc…
Vê aí…
[]s
Ferry
G
Giulliano
Sem querer ser palpitador…mas quando comecei a usar JSF para uma possível implementação aqui no trampo…tomava uns erros desses também…sem lógica alguma.
Aí mudava algumas coisas instalava alguns plugins ou até mesmo mudava de IDE e funcionava…mas depois dava outros erros sem explicação…sinceramente pra mim JSF ainda é furada…
A melhor IDE para desenvolver acho q foi o RedHatDeveloper Studio…mas agora não se pode mais fazer download…quem pegou a beta ainda pode usar quem não tem dançou…
R
renan_
Ferryman:
Eai…
Essa é facil…
Target Unreachable, identifier ‘agenda’ resolved to null
Vc instanciou o Objeto Agenda no construtor do seu Managed Bean? Ele ta tentando chamar o getNome do objeto “agenda” e deve ta tomando nullPointerExc…
Vê aí…
[]s
Ferry
tem que ter um = new AgendaDB(); antes de chamar essa pagina .jsp que manipula os atributos. Assim como Ferryman disse.
O usual é toda pagina JSP ser invocada por um botao, link, etc, que tenha um action que instancialize a classe e retorne uma string(para fazer navegacao). Entao a pagina busca.jsp seria aberta com um AgendaDB instancializado. Logo, o acesso aos atributos atraves dos get e set funcionaria sem problemas. Se precisar de exemplos é soh pedir.
Parece ser nullPointerExc mesmo.
Att,
Renan
B
bdoweb
renan_:
Ferryman:
Eai…
Essa é facil…
Target Unreachable, identifier ‘agenda’ resolved to null
Vc instanciou o Objeto Agenda no construtor do seu Managed Bean? Ele ta tentando chamar o getNome do objeto “agenda” e deve ta tomando nullPointerExc…
Vê aí…
[]s
Ferry
tem que ter um = new AgendaDB(); antes de chamar essa pagina .jsp que manipula os atributos. Assim como Ferryman disse.
O usual é toda pagina JSP ser invocada por um botao, link, etc, que tenha um action que instancialize a classe e retorne uma string(para fazer navegacao). Entao a pagina busca.jsp seria aberta com um AgendaDB instancializado. Logo, o acesso aos atributos atraves dos get e set funcionaria sem problemas. Se precisar de exemplos é soh pedir.
Parece ser nullPointerExc mesmo.
Att,
Renan
Olá renan_ gostaria de um exemplo sim cara … estou um pouco perdido …
Obrigado
B
bdoweb
Olá pessoal ....
O nullPointerExec .... era do meu JDBC ..... Então isso eu consegui resolver ....
Mas estou com um problema no meu meu XML é o seguinte:
Mas o que acontece .... quando termino um cadastro por exemplo ele não envia para a página sucesso_insercao.jsp ele cadastra no banco mas não faz um redirect para a página que configurei no navigation-case ...
Alguém tem alguma ideia do q possa ser?
M
maurenginaldo
Posta o seu bean que faz a inserção.
B
bdoweb
Olá então eu já tinha postado anteriormente …
T
Tecnoage
renan_:
Ferryman:
Eai…
Essa é facil…
Target Unreachable, identifier ‘agenda’ resolved to null
Vc instanciou o Objeto Agenda no construtor do seu Managed Bean? Ele ta tentando chamar o getNome do objeto “agenda” e deve ta tomando nullPointerExc…
Vê aí…
[]s
Ferry
tem que ter um = new AgendaDB(); antes de chamar essa pagina .jsp que manipula os atributos. Assim como Ferryman disse.
O usual é toda pagina JSP ser invocada por um botao, link, etc, que tenha um action que instancialize a classe e retorne uma string(para fazer navegacao). Entao a pagina busca.jsp seria aberta com um AgendaDB instancializado. Logo, o acesso aos atributos atraves dos get e set funcionaria sem problemas. Se precisar de exemplos é soh pedir.
Parece ser nullPointerExc mesmo.
Att,
Renan
O que vc quer dizer com isso??? Instanciar na mão um MBean??? Se for é loucura!!!
F
Ferryman
Opa,
Não é instanciar o MBean na mão não. Disse pra instanciar os Objetos do managedBean no Construtor.
[]s
Ferry
A
aisne
Estou com o mesmo problema, este é a minha AgendaDB.java e o erro é igual ao do nosso companheiro…o que eu faço??
privateStringnome=blank;privateAgendaDBnome_cliente=newAgendaDB();privateStringendereco=blank;privateStringcidade=blank;privateStringtelefone=blank;privateStringresult_busca=blank;privateStringresult_inserir=blank;publicstaticfinalStringBUSCA_INVALIDA="failure";publicstaticfinalStringBUSCA_VALIDA="sucess";publicstaticfinalStringSUCESSO_INSERCAO="sucess";publicstaticfinalStringFALHA_INSERCAO="failure";staticPreparedStatementstmt=null;staticConnectioncon=null;staticResultSetrs;privatestaticStringblank="";publicAgendaDB(){}publicvoidsetNome(Stringnome){this.nome=nome;}publicStringgetNome(){returnnome;}publicvoidsetEndereco(Stringendereco){this.endereco=endereco;}publicStringgetEndereco(){returnendereco;}publicvoidsetCidade(Stringcidade){this.cidade=cidade;}publicStringgetCidade(){returncidade;}publicvoidsetTelefone(Stringtelefone){this.telefone=telefone;}publicStringgetTelefone(){returntelefone;}publicStringinserir(){Stringresult_inserir=FALHA_INSERCAO;try{stmt=DBCon.getConnection().prepareStatement("INSERT INTO pessoa(nome,endereco,cidade,telefone) VALUES('"+nome+"','"+endereco+"','"+cidade+"','"+telefone+"')");stmt.close();result_inserir=SUCESSO_INSERCAO;}catch(SQLExceptione){System.err.println("Erro:"+e);result_inserir=FALHA_INSERCAO;}returnresult_inserir;}publicStringbuscar()throwsSQLException{Stringresult_busca=BUSCA_INVALIDA;try{rs=stmt.executeQuery("SELECT * FROM pessoa WHERE nome= '"+nome+"'");if(rs.next()){nome=rs.getString(1);endereco=rs.getString(2);cidade=rs.getString(3);telefone=rs.getString(4);result_busca=BUSCA_VALIDA;}elseresult_busca=BUSCA_INVALIDA;rs.close();stmt.close();}catch(SQLExceptione){System.err.println("Erro:"+e);}returnresult_busca;}
}
A
aisne
aisne:
Estou com o mesmo problema, este é a minha AgendaDB.java e o erro é igual ao do nosso companheiro…o que eu faço??
privateStringnome=blank;privateAgendaDBnome_cliente=newAgendaDB();privateStringendereco=blank;privateStringcidade=blank;privateStringtelefone=blank;privateStringresult_busca=blank;privateStringresult_inserir=blank;publicstaticfinalStringBUSCA_INVALIDA="failure";publicstaticfinalStringBUSCA_VALIDA="sucess";publicstaticfinalStringSUCESSO_INSERCAO="sucess";publicstaticfinalStringFALHA_INSERCAO="failure";staticPreparedStatementstmt=null;staticConnectioncon=null;staticResultSetrs;privatestaticStringblank="";publicAgendaDB(){}publicvoidsetNome(Stringnome){this.nome=nome;}publicStringgetNome(){returnnome;}publicvoidsetEndereco(Stringendereco){this.endereco=endereco;}publicStringgetEndereco(){returnendereco;}publicvoidsetCidade(Stringcidade){this.cidade=cidade;}publicStringgetCidade(){returncidade;}publicvoidsetTelefone(Stringtelefone){this.telefone=telefone;}publicStringgetTelefone(){returntelefone;}publicStringinserir(){Stringresult_inserir=FALHA_INSERCAO;try{stmt=DBCon.getConnection().prepareStatement("INSERT INTO pessoa(nome,endereco,cidade,telefone) VALUES('"+nome+"','"+endereco+"','"+cidade+"','"+telefone+"')");stmt.close();result_inserir=SUCESSO_INSERCAO;}catch(SQLExceptione){System.err.println("Erro:"+e);result_inserir=FALHA_INSERCAO;}returnresult_inserir;}publicStringbuscar()throwsSQLException{Stringresult_busca=BUSCA_INVALIDA;try{rs=stmt.executeQuery("SELECT * FROM pessoa WHERE nome= '"+nome+"'");if(rs.next()){nome=rs.getString(1);endereco=rs.getString(2);cidade=rs.getString(3);telefone=rs.getString(4);result_busca=BUSCA_VALIDA;}elseresult_busca=BUSCA_INVALIDA;rs.close();stmt.close();}catch(SQLExceptione){System.err.println("Erro:"+e);}returnresult_busca;}
}
é o erro é o seguinte
500 Internal Server Error
javax.faces.el.PropertyNotFoundException: Error testing property ‘nome’ in bean of type null 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 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.UIForm.processValidators(UIForm.java:190) at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:932) at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:362) at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:98) at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:268) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:110) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:213) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.1) ].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:712) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.1) ].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:369) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.1) ].server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:865) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.1) ].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:447) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.1) ].server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:215) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.1) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:117) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.1) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:110) at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.1) ].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303) at java.lang.Thread.run(Thread.java:595)
G
gustavoliveira
Cara eu estava com o mesmo problema e resolvi da seguinte forma
Dentro do meu bean :
O meu resolveu porque na minha classe Bean que é o BO eu tinha um atributo cadClienteVo do Tipo CadClienteVo
e no momento em que o bean era intanciado e tentava acessar esse atributo ele não conseguia porque nao havia sido intanciado
então dentro do meu construtor BO eu instanciei esse atributo e foi enxergado no momento em que era setado.