DispatcherServlet with name 'dispatcherServlet' processing request for [/myNews/login.do]
Bound request context to thread: org.apache.catalina.connector.RequestFacade@fc894b
Testing handler map [org.springframework.web.servlet.handler.SimpleUrlHandlerMapping@95e7b2] in DispatcherServlet with name 'dispatcherServlet'
Mapping [/login.do] to handler 'com.wsc.action.LoginController@1237a89'
Testing handler adapter [org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter@1dc9fb9]
Testing handler adapter [org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter@1d2b203]
Creating new command of class [com.wsc.vo.User]
No errors -> processing submit
Opening Hibernate Session
opened session at timestamp: 13185742107
located HQL query plan in cache (from User u where u.username=?)
located HQL query plan in cache (from User u where u.username=?)
find: from User u where u.username=?
parameters: [null]
named parameters: {}
about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
opening JDBC connection
select user0_.username as username0_, user0_.password as password0_ from users user0_ where user0_.username=?
Hibernate: select user0_.username as username0_, user0_.password as password0_ from users user0_ where user0_.username=?
preparing statement
binding null to parameter: 1
about to open ResultSet (open ResultSets: 0, globally: 0)
processing result set
done processing result set (0 rows)
about to close ResultSet (open ResultSets: 1, globally: 1)
about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
closing statement
total objects hydrated: 0
initializing non-lazy collections
after autocommit
transaction completed on session with on_close connection release mode; be sure to close the session to release JDBC resources!
after transaction completion
Eagerly flushing Hibernate session
Closing Hibernate Session
closing session
performing cleanup
releasing JDBC connection [ (open PreparedStatements: 0, globally: 0) (open ResultSets: 0, globally: 0)]
after transaction completion
transaction completed on session with on_close connection release mode; be sure to close the session to release JDBC resources!
after transaction completion
Opening Hibernate Session
opened session at timestamp: 13185742107
located HQL query plan in cache (from User u where u.username=?)
located HQL query plan in cache (from User u where u.username=?)
find: from User u where u.username=?
parameters: [null]
named parameters: {}
about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
opening JDBC connection
select user0_.username as username0_, user0_.password as password0_ from users user0_ where user0_.username=?
Hibernate: select user0_.username as username0_, user0_.password as password0_ from users user0_ where user0_.username=?
preparing statement
binding null to parameter: 1
about to open ResultSet (open ResultSets: 0, globally: 0)
processing result set
done processing result set (0 rows)
about to close ResultSet (open ResultSets: 1, globally: 1)
about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
closing statement
total objects hydrated: 0
initializing non-lazy collections
after autocommit
transaction completed on session with on_close connection release mode; be sure to close the session to release JDBC resources!
after transaction completion
Eagerly flushing Hibernate session
Closing Hibernate Session
closing session
performing cleanup
releasing JDBC connection [ (open PreparedStatements: 0, globally: 0) (open ResultSets: 0, globally: 0)]
after transaction completion
transaction completed on session with on_close connection release mode; be sure to close the session to release JDBC resources!
after transaction completion
Cleared thread-bound request context: org.apache.catalina.connector.RequestFacade@fc894b
Could not complete request
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.RangeCheck(ArrayList.java:547)
at java.util.ArrayList.get(ArrayList.java:322)
at com.wsc.DAO.impl.UserDAOImpl.selectUser(UserDAOImpl.java:43)
at com.wsc.service.impl.Loginimpl.selectUser(Loginimpl.java:15)
at com.wsc.vo.User.validate(User.java:38)
at com.wsc.action.LoginController.onSubmit(LoginController.java:32)
at org.springframework.web.servlet.mvc.SimpleFormController.processFormSubmission(SimpleFormController.java:267)
at org.springframework.web.servlet.mvc.AbstractFormController.handleRequestInternal(AbstractFormController.java:265)
at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
Publishing event in context [org.springframework.web.context.support.XmlWebApplicationContext@158497c]: ServletRequestHandledEvent: url=[/myNews/login.do]; client=[127.0.0.1]; method=[POST]; servlet=[dispatcherServlet]; session=[ED4B0BA1688CB80E956E72BF47F0564E]; user=[null]; time=[16ms]; status=[failed: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0]
2011-10-14 14:36:50 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet dispatcherServlet threw exception
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.RangeCheck(ArrayList.java:547)
at java.util.ArrayList.get(ArrayList.java:322)
at com.wsc.DAO.impl.UserDAOImpl.selectUser(UserDAOImpl.java:43)
at com.wsc.service.impl.Loginimpl.selectUser(Loginimpl.java:15)
at com.wsc.vo.User.validate(User.java:38)
at com.wsc.action.LoginController.onSubmit(LoginController.java:32)
at org.springframework.web.servlet.mvc.SimpleFormController.processFormSubmission(SimpleFormController.java:267)
at org.springframework.web.servlet.mvc.AbstractFormController.handleRequestInternal(AbstractFormController.java:265)
at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)

解决方案 »

  1.   

    java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
    下标越界
    你看看这个at com.wsc.DAO.impl.UserDAOImpl.selectUser(UserDAOImpl.java:43)
    有什么问题?
      

  2.   

    public User selectUser(String name){
    List userList;
    //假如查询结果为空,则new一个新的用户
    if(this.getHibernateTemplate().find(sql,name)==null){
    userList=new ArrayList();
    userList.add(new User());
    }else{
    userList=this.getHibernateTemplate().find(sql,name);
    }
    return (User)userList.get(0);
    }
    com.wsc.DAO.impl.UserDAOImpl.selectUser(UserDAOImpl.java:43
    是:return (User)userList.get(0);
      

  3.   

    如果List只是实例化了,而里边没存东西,userList.get(0)也会报错的
      

  4.   

    应该userList为空所以你get(0)的时候就会出错,你加一个判断就好了
    if(userList!=null && userList.size>0){
        return (User)userList.get(0);
    }