严重: Servlet.service() for servlet action threw exception
java.lang.ClassCastException: java.lang.Long
at edu.ustb.cs.dao.PageDao.getCount(PageDao.java:52)
at edu.ustb.cs.dao.UserDaoImpl.searchByClass(UserDaoImpl.java:90)
at edu.ustb.cs.biz.UserBizImpl.searchByClass(UserBizImpl.java:230)
at edu.ustb.cs.action.StuAction.searchByClass(StuAction.java:91)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:
270)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProces
sor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
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(Application
FilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:206)
at edu.ustb.cs.page.GbkFilter.doFilter(GbkFilter.java:26)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va: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(Http
11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)主要是分页然后在统计总记录数的时候有错误下面是pageDao.javaprivate String getCountQueryString(String queryString){
//查询总记录数SQL
String countQuery = "";
if(queryString.toUpperCase().startsWith("SELECT")){
countQuery = "select count(*) from (" + queryString + ")";
}else{
countQuery = "select count(*) " + queryString + "";
}
return countQuery;
}
/**
* 辅助方法,得到查询总记录数
* @param queryString
* @param values
* @return
*/
protected int getCount(String queryString, Object[] values){
//生成查询对象
Query query = session.createQuery(getCountQueryString(queryString));
//设置参数
if(values != null){
for(int i=0; i<values.length; i++){
query.setParameter(i, values[i]);
}
} //得到总数
return ((Integer)query.list().get(0)).intValue();
}
貌似是这一句有问题:return ((Integer)query.list().get(0)).intValue();
下面这是查询时的具体方法:public PageResult searchByClass(String department,String classes, PageBean pageBean) throws HibernateException {
//组成查询sql
String sql = "from Userinfo userinfo where userinfo.department=? and userinfo.classes=?";
//输出日志信息
log.debug("searchByClass:" + sql);
log.debug("department:" + department);
log.debug("classes:" + classes);
PageResult pageresult = new PageResult();
//生成查询对象
Query query = session.createQuery(sql);
//设置参数
query.setString(0, department);
query.setString(1, classes);
//得到查询列表
//设置分页查询数
query.setFirstResult((pageBean.getPage() - 1) * pageBean.getPageSize());
query.setMaxResults(pageBean.getPageSize());
//得到结果
pageresult.setResultList(query.list());
//查询总数
if(pageBean.getCount() <= 0){
pageBean.setCount(getCount(sql,new Object[]{department,classes}));
}
//设置分页信息
pageresult.setPageBean(pageBean);
//得到查询列表
return pageresult;
}
原来是一个参数的时候挺对的,我多加了一个参数,再把new Object里面多加了一个:pageBean.setCount(getCount(sql,new Object[]{department,classes}));然后就报错,是多加参数哪里还要改吗?
解决方案 »
- Hibernate按条件分页查询,用HQL还是QBC?
- 面试问题的疑惑-公司在找什么样的人?
- hibernate连接数据库问题(在线等呀,谢谢个位大狭)
- Struts明细行必须有一行输入的validation怎么写?
- 如何在服务器启动时,把数据库中一个表的值,一次性读取出来放到缓存
- 关于struts+hibernate结合的相关问题
- 很着急!!!!!求教一个XML Schema问题!!!
- struts2和OGNL 参数之间传递
- struts多模块配置明明按照书上来的,也查了网上的资料,应该是对的,可还是错的?
- Spring的@requestBody报错415 (Unsupported Media Type)
- 不知如何描述问题,详情请入内观看。泪奔求助,不想周末加班
- U nsupported major.minor version 49.0找人解决
你看那个地方涉及到long类型的转换..自己排除就得了..肯定是不小心导致的..这种很低级却又很容易犯的错误.... 实在不行你写几个System.out.println ..
只提供思路,如果这都还要提供完整答案..不好意思.我觉得你已经不适合做程序了...已经懒得去思维,思考.这样做下去也就混日子..