Erro JSF! Ajudem se possível

Primeiramente boa tarde,
estou começando a estudar JSF agora, então não sei quase nada ainda, praticamento nada.

estou fazendo o primeiro exemplo seguindo um livro, porém, quando vou testar o exemplo clicando no commandButton Salvar,
aparece a seguinte mensagem:

“HTTP Status 500 - /usuario.xhtml @17,83 value=”#{UserBean.nome}": Target Unreachable, identifier ‘UserBean’ resolved to null"

ja tentei colocar como Anotations na Bean e da o mesmo problema

Segue os abaixo os códigos do Bean, usuario.xhtml e o faces-config.xml

usuario.xhtml

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<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>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Cadastro de Usuario</title>
</h:head>
<h:body>
	<h1>Cadastro de Usuários</h1>
	<hr />
	<h:form>
		<h:messages />
		<h:panelGrid columns="2">
			<h:outputLabel value="Nome:" for="nome" />
			<h:inputText id="nome" label="Nome" value="#{UserBean.nome}" required="true" />
			<h:outputLabel value="e-Mail:" for="email" />
			<h:inputText id="email" label="e-Mail" value="#{UserBean.email}" />
			<h:outputLabel value="Senha:" for="senha" />
			<h:inputText id="senha" label="Senha" value="#{UserBean.senha}" required="true" />
			<h:outputLabel value="Confirmar Senha:" for="confirmarsenha" />
			<h:inputText id="confirmarsenha" label="Confirmar Senha" value="#{UserBean.confirmaSenha}" required="true" />
			<h:outputText />
			<h:commandButton action="#{UserBean.salvar}"  value="Salvar" />
		</h:panelGrid>
	</h:form>
	<hr />
</h:body>
</html>

UsuarioBean.java

package financeiro.web;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;


public class UsuarioBean {
	
	private String nome;
	private String email;
	private String senha;
	private String confirmaSenha;
	
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getSenha() {
		return senha;
	}
	public void setSenha(String senha) {
		this.senha = senha;
	}
	public String getConfirmaSenha() {
		return confirmaSenha;
	}
	public void setConfirmaSenha(String confirmaSenha) {
		this.confirmaSenha = confirmaSenha;
	}
	
	public String novo()
	{
		return "usuario";
	}
	
	public String salvar()
	{
		FacesContext context = FacesContext.getCurrentInstance();
		if(!this.senha.equalsIgnoreCase(this.confirmaSenha))
		{
			context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Senha confirma incorretamente!", ""));
			return "usuario";
		}
		return "Sucesso!";
	}
	
}

faces-config.xml

<?xml version="1.0" encoding="UTF-8"?>

<faces-config
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_1.xsd"
    version="2.1">
    <managed-bean>
    	<managed-bean-name>UserBean</managed-bean-name>
    	<managed-bean-class>financeiro.web.UsuarioBean</managed-bean-class>
    	<managed-bean-scope>request</managed-bean-scope>
    </managed-bean>
</faces-config>

Agradeço desde já, aguardo respostas!

você está usando JSF 1 ou 2 ?
você está usando a classe Entidade como managedBean, não recomendado porque você está misturando as camadas.
o erro é porque está tentando pegar um atributo de um objeto que está como null.

você tem que usar a primeira letra minúscula #{userBean.nome}

então, estou usando JSF 2.
já tentei utilizar o Anotation direto na class, não sei se seria isso que você esta me falando, mas não deu certo também.

Modifica ae[code]

     <h:inputText id="nome" label="Nome" value="#{userBean.nome}" required="true" />  

  <managed-bean-name>userBean</managed-bean-name>  

[/code]

Fiz a modificação e o erro permanece

Posta seu Web.XML

Bom se o problema acontece quando tu tenta salvar

public String salvar() { FacesContext context = FacesContext.getCurrentInstance(); if(!this.senha.equalsIgnoreCase(this.confirmaSenha)) { context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Senha confirma incorretamente!", "")); return "usuario"; } return "Sucesso!"; }

então é para ele retornar a página sucesso depois de preencher os campos corretamente

você tem que configurar lá no faces-config dentro do

[code]

//mapeamento a pagina usuario
/usuario.xhtml

//caso retornar sucesso sucesso

//me envia para a pagina de destino
/paginadestino.xhtml

[/code]

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns: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_3_0.xsd" version="3.0">
  <display-name>FinanceiroWeb</display-name>
  <servlet>
  	<display-name>Faces Servlet</display-name>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
  </servlet-mapping>
</web-app>

como está mapeado no seu web.xml

<url-pattern>*.jsf</url-pattern>
Quando acessar a pagina deve fica assim > localhost:8080/Projeto/usuario.jsf

E como falei antes o erro está porque você ta chamando o UserBean com a primeira letra maiúscula.

Altera lá direito da um Clean no servidor e depois inicia ele.

Obrigado pela ajuda, deu certo!
no caso só estava faltando o Clean no projeto mesmo.