Dúvida. Não consigo Logar na minha tela de Login - JAVA- JSF - JDBC - PRIMEFACES-

Boa tarde. Sou novo em programação Java Web.Estou precisando de uma ajuda de vocês.Não consigo rodar a minha tela de Login. Talvez seja problema no meu método na classe UsuarioBean ou no UsuárioDao.Desde já agradeço.

package persistence;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class Dao {

Connection con;
PreparedStatement stmt;
ResultSet rs;

private final String URL="jdbc:mysql://localhost:3306/agoravai";
private final String USER = "root";
private final String PASS = "157849";

protected void open() throws Exception {
	Class.forName("com.mysql.jdbc.Driver");
	con = DriverManager.getConnection(URL, USER, PASS);

}

protected void close() throws Exception {
	con.close();
}

}

package persistence;

import model.Usuario;

public class UsuarioDao extends Dao {

public void cadastrar(Usuario user) throws Exception {
	open();
	stmt = con.prepareStatement("insert into usuario values(null,?,?,?)");
	stmt.setString(1, user.getLogin());
	stmt.setString(2, user.getSenha());
	stmt.setString(3, user.getNome());
	stmt.execute();
	close();
}

public Usuario logar(Usuario user) throws Exception {
	open();
	stmt = con.prepareStatement("select logar(?,?)");
	stmt.setString(1, user.getLogin());
	stmt.setString(2, user.getSenha());
	rs = stmt.executeQuery();

	Usuario usuario = new Usuario();
	close();
	return usuario;
}

public static void main(String[] args) {
	try {
		Usuario user = new Usuario();
		user.setLogin("bruno");
		user.setSenha("123");
		user.setNome("Bruno Fraga");

		UsuarioDao ud = new UsuarioDao();
		ud.cadastrar(user);

		System.out.println("usuario cadastrado");

	} catch (Exception e) {
		e.printStackTrace();
	}

}

}

package control;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

import model.Usuario;
import persistence.UsuarioDao;
@ManagedBean(name=“uBean”)
@SessionScoped
public class UsuarioBean {

private Usuario usuario;

public UsuarioBean() {
	usuario = new Usuario();
}


public Usuario getUsuario() {
	return usuario;
}


public void setUsuario(Usuario usuario) {
	this.usuario = usuario;
}


public String logar(){
	try{
		 UsuarioDao ud = new UsuarioDao();
		Usuario user = ud.logar(usuario);
		usuario = user;
		if(user != null){
			return "admin/painel";
		}else{
			FacesContext.getCurrentInstance().addMessage("formlogin", new FacesMessage("usuario invalido"));
		}
		
	}catch (Exception e) {
		FacesContext.getCurrentInstance().addMessage("formlogin", new FacesMessage("Erro: " + e.getMessage()));
	}
return null;
}

}

E o que acontece? Qual erro? Cadê seu xhtml?

Opa Raul. Não mexi nele ainda.

<?xml version="1.0" encoding="UTF-8"?> Login_02 index.html index.htm index.jsp default.html default.htm default.jsp Faces Servlet javax.faces.webapp.FacesServlet 1 Faces Servlet /faces/*

Quando eu vou logar exibe o erro abaixo.Obs: já cadastrei o usuário pelo main.

Nome do Erro:
Erro: FUNCTION agoravai.logar does not exist

agora ficou mais confuso… Se você não tem sua pagina de Login obviamente não irá aparecer. Me explica melhor, pois você postou o web.xml ele irá fazer varias configurações p/ que sua app web funcione (não vamos entrar em detalhes) e uma delas é qual pagina que inicia a aplicação (o que você já postou index.html, index.jsp …).
O que vc já fez?

Então, eu tenho a página de login.xhtml e painel.xhtml pra quando logar redirecionar pra ele.“painel.xhtml”.
Me passa seu e-mail que te mando o projeto.
ou então me manda um oi lá no meu e-mail: bruno-fraga@hotmail.com que eu lhe passo… E já te agradeço pela ajuda :slight_smile:

Não precisa, vejamos. Vc está realizando o redirect pelo index.jsp p/ o painel.xhtml? Se sim, posta o conteúdo da pagina login.xhtml… Por que o erro tá aqui agoravai.logar, esta controller agoravai existe? Se existe nela existe o metodo logar?

Criei agora o Index.jsp.

pelo index jsp.

Index.JSP:

<%
response.sendRedirect(“login.htm”);
%>

Login.XHTML:

<?xml version="1.0" encoding="ISO-8859-1" ?>

<h:head>

Insert title here

</h:head>
<h:head></h:head>
<h:body>

	<h:form id="formlogin">
		<p:panel header="LOGIN NO SISTEMA">
			<h:panelGrid columns="2">
				<h:outputText value="LOGIN: " />
				<p:inputText id="login" value="#{uBean.usuario.login}" />
				
				<h:outputText value="SENHA: " />
				<p:password id="senha" value="#{uBean.usuario.senha}" />
			</h:panelGrid>
			<p:commandButton value="LOGAR NO SISTEMA" 
			update="formlogin" ajax="false" action="#{uBean.logar}"/>
			<p:message for="formlogin"></p:message>
		</p:panel>
	</h:form>
	
</h:body>

Painel.xhtml

<h:head></h:head>
<h:body>
	Seja bem vindo ao sistema, <h:outputText value="#{uBean.usuario.nome}" />
	
	<p:separator />
	
	<p:commandButton action="#{uBean.sair}" value="SAIR DO SISTEMA" 
	ajax="false" />
</h:body>

no index.jsp coloca assim :

<jsp:forward page="/login.jsf"/>

Apaga o scriptlet
EDIT:
Testa e veja se vai dar algum erro e dê um retorno por gentileza.

fiz e deu o mesmo erro.

Posta toda a exception … somente a exception

Dá Classe UsuarioBean:

public String logar(){
try{
UsuarioDao ud = new UsuarioDao();
Usuario user = ud.logar(usuario);
usuario = user;
if(user != null){
return “admin/painel”;
}else{
FacesContext.getCurrentInstance().addMessage(“formlogin”, new FacesMessage(“usuario invalido”));
}

	}catch (Exception e) {
		FacesContext.getCurrentInstance().addMessage("formlogin", new FacesMessage("Erro: " + e.getMessage()));
	}
return null;
}

Não brow a exception que preciso. É o erro que aparece no console saca?

ah ta. só um min.

ADVERTÊNCIA: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property ‘source’ to ‘org.eclipse.jst.jee.server:Login_02’ did not find a matching property.

Isto é uma exception! Veja o console o que ocorre com a aplicação.

não ocorre não

Ok. Mas não está aparecendo a tela de login agora?

Toda vez q eu rodo projeto no servidor aparece a tela normalmente. O problema só ocorre quando clico no botão Logar no Sistema aí exibe o erro.

Seu problema inicial :

Que erro ? Se dá exception no console já posta tbm .