JBOSS 点滴

丰丰的博客

明宇报表测试

错误提示
10:53:34,046 ERROR [Engine] StandardWrapperValve[jsp]: Servlet.service() for ser
vlet jsp threw exception
com.microsoft.sqlserver.jdbc.SQLServerException: ResultSet 已关闭。
        at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(U
nknown Source)
        at com.microsoft.sqlserver.jdbc.SQLServerResultSet.checkClosed(Unknown S
ource)
        at com.microsoft.sqlserver.jdbc.SQLServerResultSet.next(Unknown Source)
        at org.jboss.resource.adapter.jdbc.WrappedResultSet.next(WrappedResultSe 

 测试办法
rs = CCommonDAO.getReSult(sql,"ELOGISDBCON");
之后请先注释掉报表相关代码,使用下面的测试代码遍历一下结果集试试看
while(rs.next()){
    System.out.println(rs.getObject(1));
}
现在还在测试中,表面提示好象是代码有问题,但在不同的服务器上得出的结果却不一样,真叫人深思

问题已查出.,因报表写法不合规则,所以造成CPU没有得到释放,在JBOSS3.2.5中允许不合规格的写法,但在JBOSS4.0中不允许这种写法.
原写法: 
 try{
 rs = CCommonDAO.getReSult(sql,"ELOGISDBCON");
 MREngine engine = new MREngine(pageContext,"/RepRoot/");
 engine.addDataSet("usp_inbill_order",rs);
 engine.bind("Report/ware_report/inbill_order");
 rs.close();
  }finally{
    //rs.close();
  }
规则写法:
 try{

 pCon =ConnectionManager.getConnection("ELOGISDBCON");
 ps = pCon.prepareStatement(sql);
 rs = ps.executeQuery();

    MREngine engine = new MREngine(pageContext,"/RepRoot/");
 engine.addDataSet("usp_copyinout_rpt",rs);
 engine.bind("Report/ware_report/inout_rpt");
 ps.close();
 rs.close();
    pCon.close();
    }catch(Exception e){
      ps.close();
   rs.close();
      pCon.close();
      e.printStackTrace();
      throw new Exception("查询失败");   
    }finally{
      ps.close();
   rs.close();
      pCon.close();
  }



错误提示2:
Reached the report count limit!是正常的提示,有两个可能的原因:
1、服务器上插的是设计器的加密锁。设计器加密锁可以做引擎的加密锁用,运行报表程序,但是有加载模板数量的限制。出错以后,重启Webserver可以再加载报表,或直接找明宇公司再买个显示加密狗。
2、服务器上部署的引擎文件mr.jar是试用版的文件,或者有试用版的jar文件在服务器上,删掉试用版的jar文件,换成正式版,清除webserver临时文件,重启webserver的就可以了。

posted on 2006-11-13 10:58 半导体 阅读(1533) 评论(5)  编辑  收藏 所属分类: 报表

评论

# re: 明宇报表测试 2008-01-30 14:58 王子6号

这么写也有可能错误哦。  回复  更多评论   

# re: 明宇报表测试 2008-01-30 14:59 王子6号

catch(Exception e){
ps.close();
rs.close();
pCon.close();
e.printStackTrace();
throw new Exception("查询失败");
}finally{
ps.close();
rs.close();
pCon.close();
}

如果这里的rs或者pCon根本就没有打开,是null的时候,你的恶梦就来了。
所以,你最好是,先判断以后再来
if(null != rs)
rs.close();  回复  更多评论   

# re: 明宇报表测试 2008-08-02 16:28 fiele

@王子6号
有道理  回复  更多评论   

# re: 明宇报表测试 2012-12-27 11:56 Reached the report count limit!

Reached the report count limit!
怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!怎么解决!  回复  更多评论   

# re: 明宇报表测试 2013-01-04 17:01 半导体

@Reached the report count limit!
您好,不好意思,没有看到你的问题,如果你碰到这种问题,说明你用的是设计加密狗,设计加密狗规定,查看报表不能超过十个。
解决办法:建议你去明宇买个显示狗吧,临时解决办法,重启服务器!  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航: