我用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;
}
}
不知道大家有没有碰到这样的事情,很是苦恼啊现在

解决方案 »

  1.   

    return DaoHelper.listAll(hql);//运行到这步,没反应了
    加个log4j看看,感觉你这里是直接 类名.方法名(如果是这样的话把方法listAll()写成static的,看看);
      

  2.   

    谢谢,问题是,什么异常都没有,为了测试,里面的语句都不过是System.out.println之类的不会出错的语句
    现在就是执行到return DaoHelper.listAll(hql)这句,就莫名其妙的没反应了
    JavaAppliction运行又很正常
      

  3.   

    //封装数据库处理
    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;    
        }
    }
      

  4.   

    你写这个 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;    
        }
    }
      

  5.   


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