Erro com JSF + Backing Bean

Pessoal, estou fazendo minha primeira Web app com java server faces, e preciso de uma ajudinha… Não sei o que está acontecendo…

Criei meu cadastro de entidade com o seguinte código:

        <f:view>
            
            <h:form>
                
                <h:panelGrid columns="3" cellspacing="1" styleClass="grid">
                    
                    <h:outputText escape="false" value="Cadastro de Entidade" styleClass="txt12prBold"/>
                    <h:outputText value=""/>
                    <h:outputText value=""/>
                    
                    <h:outputText escape="false" value="Entidade" />
                    <h:inputText id="nome" value="#{entidadeBean.entidade.nome}" onfocus="this.className='inputSelected'" onblur="this.className='input'" >
                        <f:validateLength minimum="10" maximum="30" />
                    </h:inputText>
                    <h:message for="nome" style="color: red;"  />
                
                    <h:outputText escape="false" value="Cidade: " />
                    <h:inputText id="descricao" value="#{entidadeBean.entidade.cidade}" onfocus="this.className='inputSelected'" onblur="this.className='input'" >
                        <f:validateLength minimum="3" maximum="20" />
                    </h:inputText>
                    <h:message for="password" style="color: red;"  />

                    <h:commandButton action="#{entidadeBean.salvar}" value="Cadastrar" styleClass="botaoPadrao" />
                    <h:outputText value=""/>
                    <h:outputText value=""/>
                    
                </h:panelGrid>
                
            </h:form>
            
        </f:view>

E ao gerar a requisição para meu backing bean ocorre o erro:

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

javax.servlet.ServletException: Target Unreachable, 'entidade' returned null
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)
	com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:73)
	com.sun.enterprise.web.VirtualServerPipeline.invoke(VirtualServerPipeline.java:120)
	org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:231)
	com.sun.enterprise.web.connector.grizzly.ProcessorTask.invokeAdapter(ProcessorTask.java:667)
	com.sun.enterprise.web.connector.grizzly.ProcessorTask.processNonBlocked(ProcessorTask.java:574)
	com.sun.enterprise.web.connector.grizzly.ProcessorTask.process(ProcessorTask.java:844)
	com.sun.enterprise.web.connector.grizzly.ReadTask.executeProcessorTask(ReadTask.java:287)
	com.sun.enterprise.web.connector.grizzly.ReadTask.doTask(ReadTask.java:212)
	com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252)
	com.sun.enterprise.web.connector.grizzly.WorkerThread.run(WorkerThread.java:75)


root cause 

javax.el.PropertyNotFoundException: Target Unreachable, 'entidade' returned null
	com.sun.el.parser.AstValue.getTarget(AstValue.java:87)
	com.sun.el.parser.AstValue.getType(AstValue.java:55)
	com.sun.el.ValueExpressionImpl.getType(ValueExpressionImpl.java:180)
	com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getConvertedValue(HtmlBasicInputRenderer.java:129)
	javax.faces.component.UIInput.getConvertedValue(UIInput.java:943)
	javax.faces.component.UIInput.validate(UIInput.java:868)
	javax.faces.component.UIInput.executeValidate(UIInput.java:1078)
	javax.faces.component.UIInput.processValidators(UIInput.java:670)
	javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1039)
	javax.faces.component.UIForm.processValidators(UIForm.java:229)
	javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1039)
	javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:672)
	com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:100)
	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:266)
	com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:132)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
	com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:73)
	com.sun.enterprise.web.VirtualServerPipeline.invoke(VirtualServerPipeline.java:120)
	org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:231)
	com.sun.enterprise.web.connector.grizzly.ProcessorTask.invokeAdapter(ProcessorTask.java:667)
	com.sun.enterprise.web.connector.grizzly.ProcessorTask.processNonBlocked(ProcessorTask.java:574)
	com.sun.enterprise.web.connector.grizzly.ProcessorTask.process(ProcessorTask.java:844)
	com.sun.enterprise.web.connector.grizzly.ReadTask.executeProcessorTask(ReadTask.java:287)
	com.sun.enterprise.web.connector.grizzly.ReadTask.doTask(ReadTask.java:212)
	com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252)
	com.sun.enterprise.web.connector.grizzly.WorkerThread.run(WorkerThread.java:75)


note The full stack trace of the root cause is available in the Sun Java System Application Server Platform Edition 9.0 logs.

Qual pode ser o problema ??

Obrigado…
Marcelo

meu método salvar do backing bean está assim:

       try {
           
            EntidadeDao dao = new EntidadeDao();
            Entidade e = new Entidade();
           
            e.setNome( (String) request.getParameter("nome") );
            e.setCidade( (String) request.getParameter("cidade") );
           
            if (dao.insert(e)) {
                System.err.println("Succesful in Backing Bean of Faces!");
            } else {
                System.err.println("What the fuck in Backing Bean of Faces?");
            }
           
            return "success";
           
        } catch (SQLException sqlex) {
            sqlex.printStackTrace();
            return "failed";
        } catch (Exception ex) {
            ex.printStackTrace();
            return "failed";
        }

Obrigado