Javax.el.PropertyNotFoundException

Estou com a excessão javax.el.PropertyNotFoundException quanto tento acessar alum atributo da Bean. Utilizo JSF 2.0 e JBOSS 5 AS. O Jboss já esta com as libs no JSF 2.

Segue a minha bean:

AddUserCertBean .java

@RequestScoped
@ManagedBean(name="addUserCertBean")
public class AddUserCertBean {
	
	
	private AddUserCertModel modelCertificado = new AddUserCertModel();
	
	public AddUserCertBean()
	{
			
	}	
	
	public String cadastrar () throws InvalidKeyException, NoSuchAlgorithmException, NoSuchProviderException, SignatureException, InvalidAlgorithmParameterException, CADoesntExistsException
	{		
		AddUserCertControle addUserCertcontrole = new AddUserCertControle();
		
		addUserCertcontrole.cadastrar(this.modelCertificado);
		
		return "Teste";
	}
	
	public AddUserCertModel getAddUserCert()
	{
		return modelCertificado; 
	}
	
	public void setAddUserCert(AddUserCertModel addUserCertModel)
	{
		this.modelCertificado = addUserCertModel;
	}
}

Minha classe Modelo

AddUserCertModel.java

public class AddUserCertModel {
	
	private String tokenType;
	private String username;
	private String password;
	private String CN;
	private String L;
	private String E;
	private String O;
	private String path;
	private String OU;
	
	public String getTokenType() {
		return tokenType;
	}
	public void setTokenType(String tokenType) {
		this.tokenType = tokenType;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getCN() {
		return CN;
	}
	public void setCN(String cN) {
		CN = cN;
	}
	public String getL() {
		return L;
	}
	public void setL(String l) {
		L = l;
	}
	public String getE() {
		return E;
	}
	public void setE(String e) {
		E = e;
	}
	public String getO() {
		return O;
	}
	public void setO(String o) {
		O = o;
	}
	public String getPath() {
		return path;
	}
	public void setPath(String path) {
		this.path = path;
	}
	public String getOu() {
		return OU;
	}
	public void setOu(String OU) {
		this.OU = OU;
	}
}

Minha página:

cadastroProfile.xhtml

<html xmlns="http://www.w3.org/1999/xhtml"  
xmlns:h="http://java.sun.com/jsf/html"   
xmlns:f="http://java.sun.com/jsf/core">  
  
<h:head>  
    <title>Cadastro e Emissão de Certificado</title>  
</h:head>  
  
<h:body>  
    <p>Teste</p>      
    <h:form>        
            <h:messages></h:messages>  
                <h:panelGrid columns="2">  
                      
                    <h:outputLabel id="lblUsername" for="username" value="Username"></h:outputLabel>   
                    <h:inputText id="txtMatricula" value="#{addUserCertBean.addUserCert.username}" size="20" maxlength="10" required="true" requiredMessage="Nome de Usuário"></h:inputText>  
                                          
                    <h:outputLabel id="lblPassword" for="password" value="Password"></h:outputLabel>  
                    <h:inputSecret id="txtPassword" value="#{addUserCertBean.addUserCert.password}" size="20" maxlength="100" required="true" requiredMessage="Senha"></h:inputSecret>  
                                                                  
                    <h:outputLabel id="lblCN" for="cn" value="Common Name"></h:outputLabel>  
                    <h:inputText id="txtCN" value="#{addUserCertBean.addUserCert.CN}" size="20" maxlength="50" required="true" requiredMessage="Nome completo"></h:inputText>  
                                      
                    <h:outputLabel id="lblLocalidade" for="localidade" value="Localidade" ></h:outputLabel>  
                    <h:selectOneMenu id="ddlLocalidade" value="#{addUserCertBean.addUserCert.l}">  
                        <f:selectItem itemValue="Bragança Paulista" itemLabel="Bragança Paulista" />  
                        <f:selectItem itemValue="Piracaia" itemLabel="Piracaia" />  
                        <f:selectItem itemValue="Atibaia" itemLabel="Atibaia" />  
                        <f:selectItem itemValue="Bom Jesus dos Perdões" itemLabel="Bom Jesus dos Perdões" />  
                        <f:selectItem itemValue="Nazaré Paulista" itemLabel="Nazaré Paulista" />  
                    </h:selectOneMenu>                      
                                          
                    <h:outputLabel id="lblCampus" for="campus" value="Campus" ></h:outputLabel>  
                    <h:selectOneMenu id="ddlCampus" value="#{addUserCertBean.addUserCert.o}">  
                        <f:selectItem itemValue="Bragança Paulista" itemLabel="Bragança Paulista" />                        
                    </h:selectOneMenu>  
                                          
                    <h:outputLabel id="lblTipoUsuario" for="tipoUsuario" value="Tipo de Usuário" ></h:outputLabel>  
                    <h:selectOneMenu id="ddlTipoUsuario" value="#{addUserCertBean.addUserCert.ou}">  
                        <f:selectItem itemValue="Administrativo" itemLabel="Administrativo" />  
                        <f:selectItem itemValue="Aluno" itemLabel="Aluno" />  
                        <f:selectItem itemValue="Professor" itemLabel="Professor" />  
                    </h:selectOneMenu>      
                                          
                    <h:outputLabel id="lblTokenType" for="tokenType" value="Tipo de Token"></h:outputLabel>  
                        <h:selectOneMenu id="ddlTokenType" value="#{addUserCertBean.addUserCert.tokenType}">  
                        <f:selectItem itemValue="p12" itemLabel="#PKCS12" />  
                    </h:selectOneMenu>      
                                                  
                    <h:outputLabel id="lblEmail" for="email" value="Email" size="20"></h:outputLabel>  
                    <h:inputText id="txtEmail" value="#{addUserCertBean.addUserCert.e}" size="20" maxlength="50" required="true" requiredMessage="Nome completo"></h:inputText>  
                </h:panelGrid>                      
                  
            <h:panelGrid columns="2">           
                <h:commandButton action="#{addUserCertBean.cadastrar}"  value="Cadastrar"></h:commandButton>  
                  
                <h:commandButton value="Voltar"></h:commandButton>  
            </h:panelGrid>           
    </h:form>  
</h:body>  
</html>  

Stacktrace:

javax.el.PropertyNotFoundException: /pages/public/cadastroProfile.xhtml @16,160 value="#{addUserCertBean.addUserCert.username}": Target Unreachable, identifier 'addUserCertBean' resolved to null  
    at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:97)  
    at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getConvertedValue(HtmlBasicInputRenderer.java:91)  
    at javax.faces.component.UIInput.getConvertedValue(UIInput.java:1023)  
    at javax.faces.component.UIInput.validate(UIInput.java:953)  
    at javax.faces.component.UIInput.executeValidate(UIInput.java:1204)  
    at javax.faces.component.UIInput.processValidators(UIInput.java:693)  
    at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1081)  
    at javax.faces.component.UIForm.processValidators(UIForm.java:240)  
    at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1081)  
    at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1081)  
    at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1159)  
    at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:72)  
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)  
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)  
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)  
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)  
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)  
    at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)  
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)  
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)  
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)  
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)  
    at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)  
    at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)  
    at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)  
    at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)  
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)  
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)  
    at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)  
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)  
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)  
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)  
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)  
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)  
    at java.lang.Thread.run(Thread.java:662)  
2013-01-31 10:42:47,740 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/CertificadoDigital].[Faces Servlet]] (http-127.0.2.1-8080-1) Servlet.service() for servlet Faces Servlet threw exception  
javax.el.PropertyNotFoundException: /pages/public/cadastroProfile.xhtml @16,160 value="#{addUserCertBean.addUserCert.username}": Target Unreachable, identifier 'addUserCertBean' resolved to null  
    at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:97)  
    at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getConvertedValue(HtmlBasicInputRenderer.java:91)  
    at javax.faces.component.UIInput.getConvertedValue(UIInput.java:1023)  
    at javax.faces.component.UIInput.validate(UIInput.java:953)  
    at javax.faces.component.UIInput.executeValidate(UIInput.java:1204)  
    at javax.faces.component.UIInput.processValidators(UIInput.java:693)  
    at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1081)  
    at javax.faces.component.UIForm.processValidators(UIForm.java:240)  
    at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1081)  
    at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1081)  
    at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1159)  
    at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:72)  
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)  
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)  
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)  
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)  
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)  
    at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)  
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)  
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)  
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)  
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)  
    at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)  
    at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)  
    at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)  
    at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)  
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)  
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)  
    at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)  
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)  
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)  
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)  
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)  
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)  
    at java.lang.Thread.run(Thread.java:662)  

Faltou minha classe modelo que não coube no post.

AddUsercertModel.java

public class AddUserCertModel {
	
	private String tokenType;
	private String username;
	private String password;
	private String CN;
	private String L;
	private String E;
	private String O;
	private String path;
	private String OU;
	
	public String getTokenType() {
		return tokenType;
	}
	public void setTokenType(String tokenType) {
		this.tokenType = tokenType;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getCN() {
		return CN;
	}
	public void setCN(String cN) {
		CN = cN;
	}
	public String getL() {
		return L;
	}
	public void setL(String l) {
		L = l;
	}
	public String getE() {
		return E;
	}
	public void setE(String e) {
		E = e;
	}
	public String getO() {
		return O;
	}
	public void setO(String o) {
		O = o;
	}
	public String getPath() {
		return path;
	}
	public void setPath(String path) {
		this.path = path;
	}
	public String getOu() {
		return OU;
	}
	public void setOu(String OU) {
		this.OU = OU;
	}
}

O erro está no seu get

 public AddUserCertModel getAdddUserCert()  
    {  
        return modelCertificado;   
    }  

tem um “D” a mais.

[quote=XOOM]O erro está no seu get

 public AddUserCertModel getAdddUserCert()  
    {  
        return modelCertificado;   
    }  

tem um “D” a mais.[/quote]

Na verdade, este terceiro “D” eu tinha colocado para fazer um teste pq quando eu chamava a propriedade AddUserCert, ela ela composta tanto pelo get e pelo set, fiz somente para verificar se não havia conflito.

O problema ainda persiste. =(

O problema é no bean, a própria stacktrace diz isso:

O nome dele está correto? Ele está sendo instanciado?

[quote=Rodrigo Sasaki]O problema é no bean, a própria stacktrace diz isso:

O nome dele está correto? Ele está sendo instanciado?[/quote]

Esta sim:

Faço a instancia dele aqui.

  private AddUserCertModel modelCertificado = new AddUserCertModel();  

E chamo ele por este método:

public AddUserCertModel getAddUserCert()  
    {  
        return modelCertificado;   
    }  
      
    public void setAddUserCert(AddUserCertModel addUserCertModel)  
    {  
        this.modelCertificado = addUserCertModel;  
    } 

Pelo menos foi assim que eu vi no tutorial que sigo.

Amigo, não é o model, é o bean :slight_smile:

Não que vá fazer diferença,mas se o método é getAddUserCert pq vc não criou a propriedade ‘addUserCert’ em vez desse ‘modelCertificado’? Gera uma confusão desnecessária.

A sim, comi bola na resposta, mas então, estou instanciando ela sim, mas estou fazendo o uso das annotations:

@RequestScoped
@ManagedBean(name="addUserCertBean")

E o construtor dela:

 public AddUserCertBean()  
    {  
              
    } 

Também tentei fazer a declaração pelo faces-config, mas não deu certo. Da o seguinte erro:

SEVERE [javax.enterprise.resource.webcontainer.jsf.managedbean] (http-127.0.2.1-8080-1) O JSF estará indisponível para criar o bean gerenciado userCertBean quando ele for solicitado.  Os seguintes problemas foram encontrados:
     - O bean ou a classe da propriedade certificate.bean.UserCertBean do bean gerenciado userCertBean não pôde ser encontrada.
2013-02-01 15:27:13,538 WARNING [javax.enterprise.resource.webcontainer.jsf.lifecycle] (http-127.0.2.1-8080-1) Não foi possível criar o bean gerenciado userCertBean.  Os seguintes problemas foram encontrados:
     - O bean ou a classe da propriedade certificate.bean.UserCertBean do bean gerenciado userCertBean não pôde ser encontrada.
com.sun.faces.mgbean.ManagedBeanCreationException: Não foi possível criar o bean gerenciado userCertBean.  Os seguintes problemas foram encontrados:
     - O bean ou a classe da propriedade certificate.bean.UserCertBean do bean gerenciado userCertBean não pôde ser encontrada.
	at com.sun.faces.mgbean.BeanManager.create(BeanManager.java:261)
	at com.sun.faces.el.ManagedBeanELResolver.resolveBean(ManagedBeanELResolver.java:191)
	at com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:73)
	at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
	at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:71)
	at org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:61)
	at org.apache.el.parser.AstValue.getTarget(AstValue.java:63)
	at org.apache.el.parser.AstValue.getType(AstValue.java:56)
	at org.apache.el.ValueExpressionImpl.getType(ValueExpressionImpl.java:174)
	at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:95)
	at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getConvertedValue(HtmlBasicInputRenderer.java:91)
	at javax.faces.component.UIInput.getConvertedValue(UIInput.java:1023)
	at javax.faces.component.UIInput.validate(UIInput.java:953)
	at javax.faces.component.UIInput.executeValidate(UIInput.java:1204)
	at javax.faces.component.UIInput.processValidators(UIInput.java:693)
	at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1081)
	at javax.faces.component.UIForm.processValidators(UIForm.java:240)
	at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1081)
	at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1081)
	at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1159)
	at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:72)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Thread.java:662)

Ninguém?

O problema era na importação da API para o projeto.