急!一直等待localhost响应

希望在哪 2013-04-14 05:30:09
Action代码
System.out.println("11111111111111");
HttpSession session=ServletActionContext.getRequest().getSession();
System.out.println("22222222222222");
String username = session.getAttribute("userName").toString();
System.out.println("33333333333333");
comment = commentService.getCommentByUserName(username);
System.out.println("44444444444444");
books = bookService.getBookByUserName(username);
System.out.println("55555555555555");

第一次执行这段代码,可以正确得到comment和books,getBookByUserName是用HQL语句 session.createQuery("from Book where username =:username").setString("username", username);得到的,既然第一遍执行没问题,可以在jsp里正确显示。我想这两个函数应该没问题吧。但是我执行另外一个action后重定向到这个action后就只能输出到System.out.println("44444444444444")这里,浏览器就一直等待localhost的响应了。请教这是什么原因?

struts.xml
<action name="deleteBook" class="src.com.action.deleteBook">
<result name="success" type="redirectAction">
<param name="actionName">showMyComment</param>
</result>
</action>
...全文
1095 点赞 收藏 12
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
debug这个getBookByUserName函数。问题很好解决。
回复
十年彩虹 2013-04-15
都贴出来看看。debug 一步步试试不就知道 是哪里出现了null 一看有错误要解决。我都忍不去要去找你给你解决。 我天天看看log 有问题看看代码解决问题。解决问题的感觉真好。
回复
希望在哪 2013-04-15
谢谢楼上各位朋友的回复,我刚学java web不到一周,peng_hao1988 说的session没有关闭是正解。结贴
回复
lvzg_005 2013-04-15
如ls所说,lz需要跟踪方法getBookByUserName, 养成自己调式解决问题的习惯
回复
tianma630 2013-04-15
你在getUserByUserName方法里加几个断点看看 具体是哪一行的问题
回复
jjruanlili 2013-04-15
如果需要参数,你redirect的时候可以把那个参数也一起传到下一个action里的
回复
桃园闲人 2013-04-14
你里面的session是怎么来的?用完后关闭了吗?还有你用你获取到的username值到数据查询试试,看看能否查询出来。
回复
可能是数据库连接异常,查不到值就报异常了呗
回复
希望在哪 2013-04-14
这是通过用户名拿到用户的函数 public User getUserByUserName(String username){ Session session = hibernateTemplate.getSessionFactory().openSession(); User user = (User) session.createQuery("from User where userName =:username").setString("username", username).uniqueResult(); if(user != null) return user; return null; }
回复
希望在哪 2013-04-14
Book的数据表里只有userId,所以要先拿到user的id,函数是这样写的 public List<Book> getBookByUserName(String username){ User user = userService.getUserByUserName(username); return (List<Book>)session.createQuery("from Book where userId=:userId").setInteger("userId",user.getId()).list(); } 我在只能输出到System.out.println("44444444444444")加了个只能输出到System.out.println("username")可以正确输出当前用户的name
回复
桃园闲人 2013-04-14
只能输出到System.out.println("44444444444444")这里,说明你的程序在getBookByUserName方法里卡主了,你在转发的时候userName不知道有没有通过URL携带?可能就是这个参数不对导致在这个方法里出现了死循环,或者线程等待等情况。 好好跟一下getBookByUserName方法。
回复
aleyn 2013-04-14
调试一下试试
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2013-04-14 05:30
社区公告
暂无公告