Buen día a todos.......
Estoy experimentando con lo que es EJB3, con eclipse, richfaces, glassfish v3 y mysql.
El asunto es que quiero hacer un login, pero cuando lo pongo a correr como que no me hace la consulta a la base de datos....porfa ayuda con esto.
Quiero que se vaya del jsp de login a solicitados.
login.jsp
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
<head>
<title>login</title>
</head>
<f:view>
<f:loadBundle var="msjLogin" basename="com.jc.backingbeans.recursos"/>
<h:form>
<center>
<rich:panel id="pnlogin" style="height:100px;width: 600px;">
<h:panelGrid columns="3" id="pnglogin">
<h:outputLabel id="lblUser" value="#{msjLogin.user}"/>
<h:inputText id="intUser" value="#{loginbean.user}" required="true"/>
<rich:message id="msj" for="intUser" style="color:Red;font-size:small;font-family:Arial;"/>
<h:outputLabel id="lblPsw" value="#{msjLogin.contrasenia}"/>
<h:inputSecret id="insPsw" value="#{loginbean.contrasenia}" required="true"/>
<rich:message id="msjP" for="insPsw" style="color:Red;font-size:small;font-family:Arial;"/>
<h:column></h:column>
<h:commandButton id="cbtnIngresar" value="#{msjLogin.ingresar}" action="#{loginbean.ingresar}"/>
</h:panelGrid>
</rich:panel>
</center>
</h:form>
</f:view>
solicitados.jsp
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j" %>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<head>
<title>solicitado</title>
</head>
<f:view>
<center>
<h:form>
<rich:panel id="pnlSolicitado" style="height:100px;width: 400px;">
<h:outputLabel>HOLA A TODOS</h:outputLabel>
</rich:panel>
<rich:panel id="pnlCS" style="height:100px;width: 400px;">
<a4j:commandLink id="clnkCSesion" value="Cerrar Sesión" action="#{loginbean.logout}"/>
</rich:panel>
</h:form>
</center>
</f:view>
el backingbean es el siguiente:
LoginBean.java
package com.jc.backingbeans;
import javax.ejb.EJB;
//import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;
import javax.validation.constraints.NotNull;
import com.jc.entitybeans.Rol;
import com.jc.sessionbeans.IAdminLogin;
public class Loginbean {
@EJB(beanName="adminLogin")
private IAdminLogin controlador;
@NotNull (message="Complete correctamente")
private String user;
@NotNull (message="Complete correctamente")
private String contrasenia;
private Rol rol;
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getContrasenia() {
return contrasenia;
}
public void setContrasenia(String contrasenia) {
this.contrasenia = contrasenia;
}
public String ingresar(){
//aca es la acción del botón ingresar que no se como ponerla.....
}
public String limpiar(){
setUser("");
setContrasenia("");
return null;
}
public String logout(){
FacesContext context = FacesContext.getCurrentInstance();
HttpSession session = (HttpSession) context.getExternalContext().getSession(true);
if(session==null){
return "invalid";
}
else{
session.invalidate();
return "login";
}
}
}
Los entityBean
Usuario.java
package com.jc.entitybeans;
import java.io.Serializable;
import javax.persistence.*;
/**
* The persistent class for the usuario database table.
*/
@Entity
@Table(name="usuario")
public class Usuario implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="CI")
private String ci;
@Column(name="APELLIDO")
private String apellido;
@Column(name="CARGOSOLICITANTE")
private String cargosolicitante;
@Column(name="CONTRASENIA")
private String contrasenia;
@Column(name="CORREO")
private String correo;
@Column(name="DIRECCION")
private String direccion;
@Column(name="ID_SUCURSAL")
private String idSucursal;
@Column(name="NOMBRE")
private String nombre;
@Column(name="TELEFONO")
private String telefono;
@Column(name="USER")
private String user;
//bi-directional many-to-one association to Rol
@ManyToOne
@JoinColumn(name="IDROL")
private Rol rol;
public Usuario() {
}
public String getCi() {
return this.ci;
}
public void setCi(String ci) {
this.ci = ci;
}
public String getApellido() {
return this.apellido;
}
public void setApellido(String apellido) {
this.apellido = apellido;
}
public String getCargosolicitante() {
return this.cargosolicitante;
}
public void setCargosolicitante(String cargosolicitante) {
this.cargosolicitante = cargosolicitante;
}
public String getContrasenia() {
return this.contrasenia;
}
public void setContrasenia(String contrasenia) {
this.contrasenia = contrasenia;
}
public String getCorreo() {
return this.correo;
}
public void setCorreo(String correo) {
this.correo = correo;
}
public String getDireccion() {
return this.direccion;
}
public void setDireccion(String direccion) {
this.direccion = direccion;
}
public String getIdSucursal() {
return this.idSucursal;
}
public void setIdSucursal(String idSucursal) {
this.idSucursal = idSucursal;
}
public String getNombre() {
return this.nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getTelefono() {
return this.telefono;
}
public void setTelefono(String telefono) {
this.telefono = telefono;
}
public String getUser() {
return this.user;
}
public void setUser(String user) {
this.user = user;
}
public Rol getRol() {
return this.rol;
}
public void setRol(Rol rol) {
this.rol = rol;
}
}
Rol.java
package com.jc.entitybeans;
import java.io.Serializable;
import javax.persistence.*;
import java.util.Set;
/**
* The persistent class for the rol database table.
*
*/
@Entity
@Table(name="rol")
public class Rol implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="IDROL")
private int idrol;
@Column(name="DESCROL")
private String descrol;
@Column(name="NOMBREROL")
private String nombrerol;
//bi-directional many-to-one association to Usuario
@OneToMany(mappedBy="rol")
private Set<Usuario> usuarios;
public Rol() {
}
public int getIdrol() {
return this.idrol;
}
public void setIdrol(int idrol) {
this.idrol = idrol;
}
public String getDescrol() {
return this.descrol;
}
public void setDescrol(String descrol) {
this.descrol = descrol;
}
public String getNombrerol() {
return this.nombrerol;
}
public void setNombrerol(String nombrerol) {
this.nombrerol = nombrerol;
}
public Set<Usuario> getUsuarios() {
return this.usuarios;
}
public void setUsuarios(Set<Usuario> usuarios) {
this.usuarios = usuarios;
}
}
y por último los session.
Interfaz:IAdminLogin.java
package com.jc.sessionbeans;
import javax.ejb.Local;
import com.jc.entitybeans.Rol;
@Local
public interface IAdminLogin {
String ingresar(String user, String contrasenia, Rol rol);
}
}
AdminLoginImpl.java
package com.jc.sessionbeans;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.PersistenceException;
import javax.persistence.Query;
import com.jc.entitybeans.Rol;
import com.jc.entitybeans.Usuario;
@Stateless(name="adminLogin")
public class AdminLoginImpl implements IAdminLogin{
@PersistenceContext(unitName="t2")
private EntityManager manejador;
//ResultSet res;
@Override
public String ingresar(String user, String contrasenia, Rol rol) {
String rstg = "solicitudes";
String rst = "solicitado";
try{
Query qu = manejador.createQuery("SELECT u FROM Usuario u where u.user like ?1 and u.contrasenia like ?2");
qu.setParameter(1, user.trim().toLowerCase());
qu.setParameter(2, contrasenia.trim().toLowerCase());
Usuario usuRec = (Usuario)qu.getSingleResult();
//aca se verifica que no sea nulo y devuelve lo que tiene que devolver
if(usuRec==null){
System.out.println("usuario o contraseña inválidos");
return null; //no encontrado
}else if (usuRec!=null && qu.getParameter("rol").toString().equals("2")) {
return rstg;//jsp de solicitudes
}else if(usuRec!=null && qu.getParameter("rol").toString().equals("1")){
return rst;//jsp de solicitado
}
}catch(PersistenceException e){
e.printStackTrace();
}
return null;
}
}
Por fa amigos de la comunidad....diganme que es lo q esta mal......gracias!!!