在一个javaclass里面有 public List GetCurrency(){
CurrencyDAO dao = (CurrencyDAO) ctx.getBean("CurrencyDAO");
List<Currency> list = dao.findAll();
List CurrencyList = new ArrayList();
for(int i=0;i<list.size();i++){
List Currlist = new ArrayList();
Currlist.add(list.get(i).getCurrcode());
Currlist.add(list.get(i).getSymbol());
Currlist.add(list.get(i).getCurrencyiso().getAlphacode());
CurrencyList.add(Currlist);
}
return CurrencyList;
}我用dwr暴露给了html页面我执行这个方法的话就会报错弹出error的提示
抛出空指针异常
在java中调用这个方法的时候能正确的打印出数据
跟踪发现是执行到CurrencyDAO中的return getHibernateTemplate().find(queryString);时抛出的我java中执行没问题
为什么在dwr中调用就出了那样的问题呢?
难倒是连接的问题
由于有一百多张关联的表,查寻数据要一分多钟
会不会是连接的问题
怎么解决
希望高手指教!

解决方案 »

  1.   


    for(int i=0;i<list.size();i++){}
    改成for(int i=1;i<list.size()+1;i++){}
      

  2.   

    都没执行到这里来就出错了
    再说for这里就是这样写才对
    你那样写list.get(i)就有错了!
      

  3.   

    你的某些类是不是需要Spring的注入?
      

  4.   

    好像是一个转存储,直接用list不行么? 
      

  5.   

    你应该考虑两个地方要么spring中CurrencyDAO没有注入session,要么你的dwr配置文件有问题
      

  6.   

    你在调用过程中注销了多个session
    所以报错
      

  7.   

    我在java中调用正常
    有数据显示正常
    但是我在servlet和dwr中调用都会出现异常
    这是怎么回事???
      

  8.   

    你在java中当然不会出错
    单机测试
    只运行一次都要报错
    你还敢把它丢到b/s环境下去
    他们两个的运行都是两回事
      

  9.   

    应该是dwr前台js的问题。
      把dwr调用javaBean的方法贴一下
      

  10.   

    List<Currency> list = dao.findAll();
    估计list没取到值,lz看一下配置有没有问题
      

  11.   

    List<Currency> list = dao.findAll();
    根本就没值吧  !!  判断下list 不为NULL 在向下执行吧  ..
    还有LZ下面这样写有意思么??为什么不直接 return list ;
      

  12.   

    不知道楼主怎么操作的,
    既然用了dwr 也就说在js 中可以象java 一样调用方法
    既然在java 中可以正常使用,那就是dwr 操作时出的问题,
    建议把dwr 调用代码贴出来看下.
    下面代码是我在操作中的方法:<script type='text/javascript' src='${pageContext.request.contextPath}/dwr/interface/listService.js'></script>
    <script type='text/javascript' src='${pageContext.request.contextPath}/dwr/engine.js'></script>
    <script type='text/javascript' src='${pageContext.request.contextPath}/dwr/util.js'></script>
    <script type="text/javascript">
    function test(){
    DWRUtil.useLoadingMessage();
    listService.getList(show);
    }
    function show(list){
    DWRUtil.removeAllOptions('dropdown');
    DWRUtil.addOptions('dropdown',list,'property2','property1');
    }
    </script><body>
    <table border="1">
      <tr><td><select name="dropdown" id="dropdown" size="8"></select> </td></tr>
    </table>
    </body><dwr>
      <allow>
        <create creator="new" javascript="listService">
          <param name="class" value="cn.balancetech.hr.listServiceBean"/>
        </create> 
       </allow>
    </dwr>
    getList方法是listServiceBean类中的方法 返回的是 List
      

  13.   

    应该是依赖注入的问题吧,在jsp中使用dwr需要在配置文件中进行相关配置
      

  14.   

    比较赞同 17楼的建议,应该是 在jsp中使用dwr需要在配置文件中进行相关配置
    然后是就是你的依赖注入 有问题。