郁闷了,代码莫名其妙的不执行下去了,本地运行正常,WEB模式执行一半……

varlj 2009-04-24 01:22:28
我用strugs2和hibernate做个小网站,结果在测试的时候发现了问题

/*
类之间的调用就像下面的,两个factory就简单的返回一个对应的实例
MyAction=>ControlFactory=>SysControl=>DaoFactory=>SysDao=>DaoHelper
我直接在eclipse里面以java application执行MyAction里面的方法的时候,一切正常
当我在浏览器访问action时,方法正常调用,但是当执行到SysDao里面的时候,调用DaoHelper时,就停止了,没有任何异常,仿佛运行到那,就不了了之了一样,实在是弄不明白
*/

//struts2的Action类
class MyAction
{
public String getList(){
ControlFactory.getSysControl().getList();//正常
return "success";
}
}

//做一些处理
class SysControl
{
public List getList(){
return DaoFactory.getSysDao().getList();//正常
}
}

//封装数据库处理
class SysDao
{
public List getList(){
String hql = "from SysMenu";//单步调试的时候,这里能进来
return DaoHelper.listAll(hql);//运行到这步,没反应了
}
}

//封装hibernate处理
class DaoHelper
{
public List listAll(String hql){
System.out.println("执行");//这句都不会显示
List list = null;
//一些hibernate操作
return list;
}
}


不知道大家有没有碰到这样的事情,很是苦恼啊现在
...全文
98 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ldxfsh 2009-04-24
  • 打赏
  • 举报
回复
debug
varlj 2009-04-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zhoushaolan 的回复:]
return DaoHelper.listAll(hql);//运行到这步,没反应了
加个log4j看看,感觉你这里是直接 类名.方法名(如果是这样的话把方法listAll()写成static的,看看);
[/Quote]

谢谢,DaoHelper里面的都是静态,我发上面的时候忘写了

zabaglione 2009-04-24
  • 打赏
  • 举报
回复
你写这个 System.out.println("执行");//这句都不会显示

当然没有用了。你是在浏览器中访问啊。上面的语句是在控制台dos窗口
显示。

所以你的方法实际上应该走进去了。只不过 System.out.println("执行");
本身就不能显示出来。

你换个思路啊。
比如在request里面设置,然后jsp显示在浏览器上,不就知道方法有没有
运行到了嘛。/
class DaoHelper
{
public List listAll(String hql){
request.setAttribute("DaoHelper","true!");
List list = null;
//一些hibernate操作
return list;
}
}

专业二三维GIS 2009-04-24
  • 打赏
  • 举报
回复
//封装数据库处理
class SysDao
{
public List getList(){
String hql = "from SysMenu";//单步调试的时候,这里能进来
return DaoHelper.listAll(hql);//运行到这步,没反应了
//listAll又不是静态方法,怎么能这样直接调用?
}
}

//封装hibernate处理
class DaoHelper
{
public List listAll(String hql){
System.out.println("执行");//这句都不会显示
List list = null;
//一些hibernate操作
return list;
}
}

varlj 2009-04-24
  • 打赏
  • 举报
回复
谢谢,问题是,什么异常都没有,为了测试,里面的语句都不过是System.out.println之类的不会出错的语句
现在就是执行到return DaoHelper.listAll(hql)这句,就莫名其妙的没反应了
JavaAppliction运行又很正常
zhoushaolan 2009-04-24
  • 打赏
  • 举报
回复
return DaoHelper.listAll(hql);//运行到这步,没反应了
加个log4j看看,感觉你这里是直接 类名.方法名(如果是这样的话把方法listAll()写成static的,看看);
healer_kx 2009-04-24
  • 打赏
  • 举报
回复
你要学会看异常了,这样才知道出什么问题了。
这个时候,你最好重新编译一下,再看看情况。

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧