I get this error when executing a query that should connect to the database when making a log:
Hibernate: select this_.username as username1_0_0_, this_.password as
password2_0_0_, this_.name as name3_0_0_, this_.lastname as
lastname4_0_0_, this_.sex as sex5_0_0_, this_.tel as tel6_0_0_ from
ddjj.users this_ where this_.username like ? and this_.password like ?
10-Jun-2017 19:45:01.078 WARNING [http-nio-8084-exec-182]
com.sun.faces.lifecycle.InvokeApplicationPhase.execute #
{loginFormBean.searchUser()}: java.lang.IndexOutOfBoundsException:
Index: 0, Size: 0
javax.faces.FacesException: #{loginFormBean.searchUser()}:
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerI
mpl.java:118)
at javax.faces.component.UICommand.broadcast(UICommand.java:315)
at
javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790)
at
javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282)
at
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPh
ase.java:81)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicat
ionFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:217)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:673)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: javax.faces.el.EvaluationException: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:101)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
... 31 more
Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(ArrayList.java:653)
at java.util.ArrayList.get(ArrayList.java:429)
at aplicacion.modelo.source.UserDataSource.searchUser(UserDataSource.java:47)
at aplicacion.hibernate.dao.imp.UserDAOImp.searchUser(UserDAOImp.java:36)
at aplicacion.beans.LoginBean.searchUser(LoginBean.java:40)
at aplicacion.beans.forms.LoginFormBean.searchUser(LoginFormBean.java:31)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.el.parser.AstValue.invoke(AstValue.java:247)
at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:267)
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87)
... 32 more
10-Jun-2017 19:45:01.082 SEVERE [http-nio-8084-exec-182] com.sun.faces.context.AjaxExceptionHandlerImpl.handlePartialResponseError javax.faces.el.EvaluationException: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:101)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
at javax.faces.component.UICommand.broadcast(UICommand.java:315)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:217)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:673)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(ArrayList.java:653)
at java.util.ArrayList.get(ArrayList.java:429)
at aplicacion.modelo.source.UserDataSource.searchUser(UserDataSource.java:47)
at aplicacion.hibernate.dao.imp.UserDAOImp.searchUser(UserDAOImp.java:36)
at aplicacion.beans.LoginBean.searchUser(LoginBean.java:40)
at aplicacion.beans.forms.LoginFormBean.searchUser(LoginFormBean.java:31)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.el.parser.AstValue.invoke(AstValue.java:247)
at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:267)
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87)
... 32 more
XHTML
<?xml version='1.0' encoding='UTF-8' ?>
Login FormBean package aplicacion.beans.forms;
import aplicacion.beans.LoginBean;
import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;
/**
*
* @author Trabajo Y Estudio
*/
@ManagedBean
@ViewScoped
public class LoginFormBean implements Serializable{
@ManagedProperty(value = "#{loginBean}")
private LoginBean loginBean;
private String username;
private String pass;
public LoginFormBean() {
}
public String searchUser(){
return loginBean.searchUser(username, pass);
}
/**
* @return the username
*/
public String getUsername() {
return username;
}
/**
* @param username the username to set
*/
public void setUsername(String username) {
this.username = username;
}
/**
* @return the pass
*/
public String getPass() {
return pass;
}
/**
* @param pass the pass to set
*/
public void setPass(String pass) {
this.pass = pass;
}
/**
* @return the loginBean
*/
public LoginBean getLoginBean() {
return loginBean;
}
/**
* @param loginBean the loginBean to set
*/
public void setLoginBean(LoginBean loginBean) {
this.loginBean = loginBean;
}
}
Bean
package aplicacion.beans;
import aplicacion.hibernate.dao.imp.UserDAOImp;
import aplicacion.hibernate.dao.UserDAO;
import aplicacion.modelo.dominio.User;
import aplicacion.modelo.source.UserDataSource;
import java.io.Serializable;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
/**
*
* @author hernan-PC
*/
@ManagedBean
@ViewScoped
public class LoginBean implements Serializable {
private User user;
private UserDAO userDao;
public LoginBean() {
}
@PostConstruct
public void init() {
userDao = new UserDAOImp();
}
public String searchUser(String username, String pass) {
String word = null;
System.out.println("Bean");
user = userDao.searchUser(username, pass);
if (user == null) {
FacesContext.getCurrentInstance()
.addMessage(null, new
FacesMessage(FacesMessage.SEVERITY_WARN, "Atencion", "Uasuario No
Encontrado"));
} else {
FacesContext.getCurrentInstance()
.getExternalContext()
.getSessionMap().put("user", user);
word = "menu?faces-redirect=true";
}
return word;
}
/**
* @return the user
*/
public User getUser() {
return user;
}
/**
* @param user the user to set
*/
public void setUser(User user) {
this.user = user;
}
/**
* @return the userDao
*/
public UserDAO getUserDao() {
return userDao;
}
/**
* @param userDao the userDao to set
*/
public void setUserDao(UserDAO userDao) {
this.userDao = userDao;
}
}
---------------------------- up here arrives well --------------- ----------
package aplicacion.modelo.source;
import aplicacion.hibernate.config.HibernateUtil;
import aplicacion.modelo.dominio.User;
import java.io.Serializable;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;
/**
*
* @author hernan-PC
*/
public class UserDataSource implements Serializable {
public static void add(User user) {
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
session.save(user);
session.getTransaction().commit();
session.close();
}
public static void upDate(User user) {
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
session.save(user);
session.getTransaction().commit();
session.close();
}
public static User searchUser(String username, String pass) {
User user = null;
Session session = HibernateUtil.getSessionFactory().openSession();
Criteria criteria = session.createCriteria(User.class);
criteria.add(Restrictions.like("username", username));
criteria.add(Restrictions.like("password", pass));
System.out.println("dentro de la busqueda de ususario");
//no importa si el usuario existe o no igual entra al if
if (criteria.list().isEmpty()) {
System.out.println("dentro de if ");
user = new User();
user = (User) criteria.list().get(0);
}
session.close();
System.out.println("devolviendo usuario");
return user;
}
}