錯(cuò)誤提示
10:53:34,046 ERROR [Engine] StandardWrapperValve[jsp]: Servlet.service() for ser
vlet jsp threw exception
com.microsoft.sqlserver.jdbc.SQLServerException: ResultSet 已關(guān)閉。
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");
之后請先注釋掉報(bào)表相關(guān)代碼,使用下面的測試代碼遍歷一下結(jié)果集試試看
while(rs.next()){
System.out.println(rs.getObject(1));
}
現(xiàn)在還在測試中,表面提示好象是代碼有問題,但在不同的服務(wù)器上得出的結(jié)果卻不一樣,真叫人深思
問題已查出.,因報(bào)表寫法不合規(guī)則,所以造成CPU沒有得到釋放,在JBOSS3.2.5中允許不合規(guī)格的寫法,但在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();
}
規(guī)則寫法:
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();
}
錯(cuò)誤提示2:
Reached the report count limit!是正常的提示,有兩個(gè)可能的原因:
1、服務(wù)器上插的是設(shè)計(jì)器的加密鎖。設(shè)計(jì)器加密鎖可以做引擎的加密鎖用,運(yùn)行報(bào)表程序,但是有加載模板數(shù)量的限制。出錯(cuò)以后,重啟Webserver可以再加載報(bào)表,或直接找明宇公司再買個(gè)顯示加密狗。
2、服務(wù)器上部署的引擎文件mr.jar是試用版的文件,或者有試用版的jar文件在服務(wù)器上,刪掉試用版的jar文件,換成正式版,清除webserver臨時(shí)文件,重啟webserver的就可以了。