奇诡的问题,运行out.close()12次左右Tomcat6就停止响应了。

Pipi0714 2008-07-17 03:46:49
奇诡的问题,运行out.close()12次左右Tomcat6就停止响应了。
每次调用out.close都出现下面的错误
2008-7-17 15:44:39 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jsp threw exception
java.sql.SQLException: Illegal operation on empty result set.
at com.mysql.jdbc.ResultSet.checkRowPos(ResultSet.java:680)
at com.mysql.jdbc.UpdatableResultSet.checkRowPos(UpdatableResultSet.java:239)
at com.mysql.jdbc.ResultSet.getBytes(ResultSet.java:1634)
at com.mysql.jdbc.ResultSet.getBytes(ResultSet.java:1628)
at com.mysql.jdbc.ResultSet.getBytes(ResultSet.java:1676)
at org.apache.tomcat.dbcp.dbcp.DelegatingResultSet.getBytes(DelegatingResultSet.java:253)
at org.apache.jsp.show_jsp._jspService(show_jsp.java:181)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
...全文
150 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Pipi0714 2008-07-17
  • 打赏
  • 举报
回复
//浅圆仓
%>


<table border="0" cellpadding="0" cellspacing="5">
<tr>
<td height="35" colspan="2" align="center" class="titles"><%=storeName %>检温报表</td>
</tr>
<tr>
<td colspan="2">仓号:<%=houseNo %> 检温日期:<%=rq %>  <a href="#" onclick="javascript:window.print()">打印</a> <a href="#" onclick="document.execCommand('Saveas',false,'c:\\<%=rq%>.htm')">保存</a></td>
</tr>
<tr>
<td valign="top"><table border="0" cellspacing="1" bgcolor="a0a0a0">
<tr>
<td width="55" height="25" align="center" bgcolor="#FFFFFF">缆</td>
<% for (int i=0;i<houseinfo[0];i++) {%>
<td width="<%=lk %>" bgcolor="#FFFFFF" align="center">层<%=i+1 %></td>
<% }%>
</tr>
<%
temp_ds=0;
for (int j=0;j<houseinfo.length;j++) {%>
<tr>
<td align="center" bgcolor="#FFFFFF">缆<%=j+1 %></td>
<%
for(int xu=0;xu<houseinfo[0];xu++)
{
%>
<td bgcolor="#FFFFFF"><%
if (houseinfo[0]-houseinfo[j]<=xu){
if (wdz[temp_ds]<lg&&wdz[temp_ds]>ld)//过虑888
{
out.print(wdz[temp_ds]);
zgw[xu]=(zgw[xu]<wdz[temp_ds])?wdz[temp_ds]:zgw[xu];
zdw[xu]=(wdz[temp_ds]<zdw[xu])?wdz[temp_ds]:zdw[xu];
czw[xu]=czw[xu]+wdz[temp_ds];
cds[xu]++;
cs=(xu>cs)?xu:cs;
czg=(czg<wdz[temp_ds])?wdz[temp_ds]:czg;
czd=(wdz[temp_ds]<czd)?wdz[temp_ds]:czd;
czds++;
czwd=czwd+wdz[temp_ds];
}
temp_ds++;
}
%>
</td>
<%
}
%>
</tr>
<% } %>
<tr>
<td bgcolor="#FFFFFF">平均温 </td>
<% for (int i=0;i<houseinfo[0];i++) {%>
<td bgcolor="#FFFFFF" ><%= new Double( new DecimalFormat(".0").format(czw[i]/cds[i])) %></td>
<% }%>
</tr>
<tr>
<td bgcolor="#FFFFFF">最高温</td>
<% for (int i=0;i<houseinfo[0];i++) {%>
<td bgcolor="#FFFFFF" ><%= zgw[i] %></td>
<% }%>
</tr>
<tr>
<td bgcolor="#FFFFFF">最低温</td>
<% for (int i=0;i<houseinfo[0];i++) {%>
<td bgcolor="#FFFFFF" ><%= zdw[i] %></td>
<% }%>
</tr>

</table></td>
<td valign="top"><table border="0" cellspacing="1" bgcolor="a0a0a0">
<% if (rs.getFloat("InTemperature")!=-100)
{
%>
<tr>
<td width="62" bgcolor="#FFFFFF">移动内温</td>
<td width="35" bgcolor="#FFFFFF"><%= new Double( new DecimalFormat(".0").format(rs.getFloat("InTemperature"))) %></td>
</tr>
<%}
if (rs.getFloat("InHumidity")!=-100)
{
%>
<tr>
<td bgcolor="#FFFFFF">移动内湿</td>
<td bgcolor="#FFFFFF"><%=new Double( new DecimalFormat(".0").format(rs.getFloat("InHumidity"))) %></td>
</tr>
<%}
if (rs.getFloat("outTemperature")!=-100)
{
%>
<tr>
<td bgcolor="#FFFFFF">移动外温</td>
<td bgcolor="#FFFFFF"><%= new Double( new DecimalFormat(".0").format(rs.getFloat("outTemperature"))) %></td>
</tr>
<%}
if (rs.getFloat("outHumidity")!=-100)
{
%>
<tr>
<td bgcolor="#FFFFFF">移动外湿</td>
<td bgcolor="#FFFFFF"><%= new Double( new DecimalFormat(".0").format(rs.getFloat("outHumidity"))) %></td>
</tr>
<%}%>
</table>
<br>

<table border="0" cellspacing="1" bgcolor="a0a0a0">
<tr>
<td colspan="2" align="center" bgcolor="#FFFFFF">整仓</td>
</tr>
<tr>
<td bgcolor="#FFFFFF">平均温</td>
<td bgcolor="#FFFFFF"><%= new Double( new DecimalFormat(".0").format(czwd/czds)) %></td>
</tr>
<tr>
<td width="62" bgcolor="#FFFFFF">最高温</td>
<td width="35" bgcolor="#FFFFFF"><%= czg %></td>
</tr>
<tr>
<td bgcolor="#FFFFFF">最低温</td>
<td bgcolor="#FFFFFF"><%=czd %></td>
</tr>
</table>
<br>
<%
if(wdz.length<temp_ds+Temperature+Humidity){
out.print("<script language='javascript'> alert('温度值已全部读取完毕,无法读取移动点温湿!');</script>");
out.close();}
%>
<table border="0" cellspacing="1" bgcolor="a0a0a0">
<%
//读取内湿,前面内湿后面内温
for ( int temps=0;temps<Humidity;temps++ )
{
%>
<tr>
<td width="62" bgcolor="#FFFFFF">内湿第<%= temps+1 %>点</td>
<td width="35" bgcolor="#FFFFFF"><%= wdz[temp_ds+temps] %></td>
</tr>
<%
}
%>
</table>
<br>
<table border="0" cellspacing="1" bgcolor="a0a0a0">
<%
for ( int temps=0;temps<Temperature;temps++ )
{
%>
<tr>
<td width="62" bgcolor="#FFFFFF">内温第<%= temps+1 %>点</td>
<td width="35" bgcolor="#FFFFFF"><%= wdz[temp_ds+temps+Temperature] %></td>
</tr>
<%
}
%>
</table></td>
</tr>
</table>
<%
}
rs.close();
db.close();
%>
Pipi0714 2008-07-17
  • 打赏
  • 举报
回复
/////////////////////////////////////////////开始显示平房仓数据
if(Housetype.equals("平房仓"))
{
%>
 
<table border="0" cellpadding="0" cellspacing="5">
<tr>
<td height="35" colspan="2" align="center" class="titles"><%=storeName %>检温报表</td>
</tr>
<tr>
<td colspan="2">仓号:<%=houseNo %> 检温日期:<%=rq %>  <a href="#" onclick="javascript:window.print()">打印</a> <a href="#" onclick="document.execCommand('Saveas',false,'c:\\<%=rq%>.htm')">保存</a></td>
</tr>
<tr>
<td valign="top"><table border="0" cellpadding="0" cellspacing="1" bgcolor="a0a0a0">
<tr>
<td width="55" height="25" align="center" bgcolor="#FFFFFF">行</td>
<%for(int b=1;b<=Cablenumber;b=b+1){%>
<td width="<%=lk %>" align="center" bgcolor="#FFFFFF">缆<%=b%></td>
<%}%>
</tr>
<%

for(int b=0;b<houseinfo.length;b=b+Cablenumber)//横排Cablenumber, houseinfo.length是仓房电缆根数,在没有读完全部时循环行
{
%>
<tr>
<td align="center" bgcolor="#FFFFFF">行<%=b/Cablenumber+1%></td>
<% for (int j=0;j<Cablenumber;j++)//循环列
{ %>
<td valign="top" bgcolor="#FFFFFF"><%
if ((b+j)<houseinfo.length)
{
for (int xu=0;xu<houseinfo[b+j];xu++)
{
if(temp_ds==wdz.length)
{
out.print("<script language='javascript'> alert('仓房信息可能定义错误,温度值已全部读取完毕!');</script>");
out.close();
}
if (wdz[temp_ds]<lg&&wdz[temp_ds]>ld)//过虑888
{
out.print(wdz[temp_ds]);
/////////////////////////////////层最高温、最低温、层总温、每层点数、层数
zgw[xu]=(zgw[xu]<wdz[temp_ds])?wdz[temp_ds]:zgw[xu];
zdw[xu]=(wdz[temp_ds]<zdw[xu])?wdz[temp_ds]:zdw[xu];
czw[xu]=czw[xu]+wdz[temp_ds];
cds[xu]++;
cs=(xu>cs)?xu:cs;
czg=(czg<wdz[temp_ds])?wdz[temp_ds]:czg;
czd=(wdz[temp_ds]<czd)?wdz[temp_ds]:czd;
czds++;
czwd=czwd+wdz[temp_ds];
}
/////////////////////////////////
temp_ds++;
if (xu+1<houseinfo[b+j]){
%>
<table width="<%=lk %>" height="1" border="0" cellpadding="0" cellspacing="0" bgcolor="#a0a0a0">
<tr>
<td></td>
</tr>
</table>
<%}
}
}
%></td>
<% } %>
</tr>
<% }

%>
</table></td>
<td valign="top"><table width="125" border="0" cellspacing="1" bgcolor="a0a0a0">
<% if (rs.getFloat("InTemperature")!=-100)
{
%>
<tr>
<td width="62" bgcolor="#FFFFFF">移动内温</td>
<td width="56" bgcolor="#FFFFFF"><%= new Double( new DecimalFormat(".0").format(rs.getFloat("InTemperature"))) %></td>
</tr>
<%}
if (rs.getFloat("InHumidity")!=-100)
{
%>
<tr>
<td bgcolor="#FFFFFF">移动内湿</td>
<td bgcolor="#FFFFFF"><%=new Double( new DecimalFormat(".0").format(rs.getFloat("InHumidity"))) %></td>
</tr>
<%}
if (rs.getFloat("outTemperature")!=-100)
{
%>
<tr>
<td width="62" bgcolor="#FFFFFF">移动外温</td>
<td width="56" bgcolor="#FFFFFF"><%= new Double( new DecimalFormat(".0").format(rs.getFloat("outTemperature"))) %></td>
</tr>
<%}
if (rs.getFloat("outHumidity")!=-100)
{
%>
<tr>
<td width="62" bgcolor="#FFFFFF">移动外湿</td>
<td width="56" bgcolor="#FFFFFF"><%= new Double( new DecimalFormat(".0").format(rs.getFloat("outHumidity"))) %></td>
</tr>
<%}%>
</table>

<br>
<% for(int cw=0;cw<=cs;cw++) {%>
<table width="125" border="0" cellspacing="1" bgcolor="a0a0a0">
<tr>
<td colspan="2" align="center" bgcolor="#FFFFFF">第<%= cw+1 %>层</td>
</tr>
<tr>
<td width="62" bgcolor="#FFFFFF">平均温</td>
<td width="56" bgcolor="#FFFFFF"><%= new Double( new DecimalFormat(".0").format(czw[cw]/cds[cw])) %></td>
</tr>
<tr>
<td width="62" bgcolor="#FFFFFF">最高温</td>
<td width="56" bgcolor="#FFFFFF"><%= zgw[cw] %></td>
</tr>
<tr>
<td width="62" bgcolor="#FFFFFF">最低温</td>
<td width="56" bgcolor="#FFFFFF"><%= zdw[cw]%></td>
</tr>

</table>
<br>
<%}%>
<table width="125" border="0" cellspacing="1" bgcolor="a0a0a0">
<tr>
<td colspan="2" align="center" bgcolor="#FFFFFF">整仓</td>
</tr>
<tr>
<td width="62" bgcolor="#FFFFFF">平均温</td>
<td width="56" bgcolor="#FFFFFF"><%= new Double( new DecimalFormat(".0").format(czwd/czds)) %></td>
</tr>
<tr>
<td width="62" bgcolor="#FFFFFF">最高温</td>
<td width="56" bgcolor="#FFFFFF"><%= czg %></td>
</tr>
<tr>
<td width="62" bgcolor="#FFFFFF">最低温</td>
<td width="56" bgcolor="#FFFFFF"><%=czd %></td>
</tr>

</table>
<br>
<%
if(wdz.length<temp_ds+Temperature+Humidity){
out.print("<script language='javascript'> alert('温度值已全部读取完毕,无法读取移动点温湿!');</script>");
out.close();} %>
<table width="125" border="0" cellspacing="1" bgcolor="a0a0a0">
<%
for ( int temps=0;temps<Humidity;temps++ )
{
%>
<tr>
<td width="62" bgcolor="#FFFFFF">内湿第<%= temps+1 %>点</td>
<td width="56" bgcolor="#FFFFFF"><%= wdz[temp_ds+temps] %></td>
</tr>
<%
}
%>
</table>
<br>
<table width="125" border="0" cellspacing="1" bgcolor="a0a0a0">
<%
for ( int temps=0;temps<Temperature;temps++ )
{
%>
<tr>
<td width="62" bgcolor="#FFFFFF">内温第<%= temps+1 %>点</td>
<td width="56" bgcolor="#FFFFFF"><%= wdz[temp_ds+temps+Temperature] %></td>
</tr>
<%
}
%>
</table></td>
</tr>
</table>

<%
}
else{
Pipi0714 2008-07-17
  • 打赏
  • 举报
回复
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.lang.*,java.text.DecimalFormat,java.sql.*,webclass.*,webclass.dbsql" errorPage="" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title></title>
<style type="text/css">
<!--
A:visited{TEXT-DECORATION: none;color: #444;}
A:active{TEXT-DECORATION: none;color: #444;}
A:link{text-decoration: none;color: #444;}
A:hover {TEXT-DECORATION: none;color:#666}
DIV,FORM,P,TD,BODY{FONT-SIZE:9pt;}
BODY{
margin-top: 5px;
COLOR: #000000;
background-color: #ffffff;
scrollbar-face-color: #DEE3E7;
scrollbar-highlight-color: #FFFFFF;
scrollbar-shadow-color: #DEE3E7;
scrollbar-3dlight-color: #D1D7DC;
scrollbar-arrow-color: #000;
scrollbar-track-color: #EFEFEF;
scrollbar-darkshadow-color: #98AAB1;
}
#TableTitleLink A:link,#TableTitleLink A:visited{COLOR:666666;}
textarea {BORDER-RIGHT: #ffffff 1px groove; BORDER-TOP: #ffffff 1px groove; FONT: 12px Verdana,Geneva,sans-serif; BORDER-LEFT: #ffffff 1px groove; COLOR: #000000; BORDER-BOTTOM: #ffffff 1px groove;}
select {BORDER-RIGHT: #ffffff 1px groove; BORDER-TOP: #ffffff 1px groove; FONT: 12px Verdana,Geneva,sans-serif; BORDER-LEFT: #ffffff 1px groove; COLOR: #000000; BORDER-BOTTOM: #ffffff 1px groove;BACKGROUND-COLOR: #DFF1F9}
option {font-size: 12px; background-color: #efefef; color: #51485f;}
td{font-size: 9pt;BORDER-COLLAPSE: collapse}
TABLE{FONT-SIZE: 9pt;BORDER-COLLAPSE: collapse}
INPUT {BORDER-TOP-WIDTH: 1px; BORDER-LEFT-WIDTH: 1px; FONT-SIZE: 12px; BORDER-BOTTOM-WIDTH: 1px; BORDER-RIGHT-WIDTH: 1px;}
.INPUT{BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; BORDER-TOP: #cccccc 1px solid; FONT-SIZE: 12px;background:#FFFFFF}
FORM {PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px}
.title{background:url(images/admintitle.gif) efefef;font-color:#fff;cursor:hand;}
.bg{background:#efefef}
.bgcolor{background:#ffffff}
.titles{FONT-SIZE: 18px}
.put{
BORDER-RIGHT: 0px solid; BORDER-TOP: 0px solid; FONT-SIZE: 9pt; FILTER: chroma(color=#f7f7f7); BACKGROUND-IMAGE: url(images/put.gif); BORDER-LEFT: 0px solid; WIDTH: 54px; CURSOR: hand; PADDING-TOP: 3px; BORDER-BOTTOM: 0px solid; BACKGROUND-REPEAT: no-repeat; HEIGHT: 20px; BACKGROUND-COLOR: #f7f7f7
}
.overput{
BORDER-RIGHT: 0px solid; BORDER-TOP: 0px solid; FONT-SIZE: 9pt; FILTER: chroma(color=#f7f7f7); BACKGROUND-IMAGE: url(images/overput.gif); BORDER-LEFT: 0px solid; WIDTH: 54px; CURSOR: hand; PADDING-TOP: 3px; BORDER-BOTTOM: 0px solid; BACKGROUND-REPEAT: no-repeat; HEIGHT: 20px; BACKGROUND-COLOR: #f7f7f7
}
.yecao{border:solid 1px #666;color:#000;font-size: 12px;background:#efefef;}
-->
</style>
</head>
<%
String storeNo=request.getParameter("storeNO");
String houseNo=request.getParameter("houseNO");
String rq=request.getParameter("d_s");
String Housetype="平房仓";
int Temperature=0,Humidity=0,Cablenumber=7;
byte[] houseinfo=null;
float[] zgw=new float[14];
float[] zdw={100.00f,100.00f,100.00f,100.00f,100.00f,100.00f,100.00f,100.00f,100.00f,100.00f,100.00f,100.00f,100.00f,100.00f};
float[] cds=new float[14];
float[] czw=new float[14];
int temp_ds=0;
int lk=50;
int cs=0;
float czg=0;
float czd=100;
int czds=0;
int lg=70,ld=-30;
float czwd=0;
Users user=(Users)session.getAttribute("user");
if (user==null){
out.print("<script language='javascript'> alert('登陆超时!');parent.location.href='login.jsp';</script>");
out.close();}
if (!User_qx.Get_qx(user.getUserName(),storeNo+"|"+houseNo).equals("checked")){
out.print("<script language='javascript'> alert('您不具备此权限!');window.history.go(-1);</script>");
out.close();
}
if (storeNo==null)
{
out.print("<script language='javascript'> alert('粮库名称编码错误');window.history.go(-1);</script>");
out.close();
}
if (houseNo==null)
{
out.print("<script language='javascript'> alert('没有选择仓房号');window.history.go(-1);</script>");
out.close();
}
if (rq==null)
{
out.print("<script language='javascript'> alert('没有选择查询日期');window.history.go(-1);</script>");
out.close();
}
dbsql db=new dbsql();
db.dbopen();
String Strsql;
Strsql="select * from sunhouseinfo where storeNo='"+storeNo+"' and houseno='"+houseNo+"';";
ResultSet rs=db.executeQuery(Strsql);

while(rs.next()){
houseinfo=rs.getBytes("CableInfo");
Housetype=rs.getString("Housetype");
Temperature=rs.getInt("Temperature");
Humidity=rs.getInt("Humidity");
Cablenumber=rs.getInt("Cablenumber");
}
rs.close();
if (houseinfo==null)
{
out.print("<script language='javascript'> alert('没有读取到仓房信息');window.history.go(-1);</script>");
out.close();
}
Strsql="select * from storename where StoreNo='"+storeNo+"';";
rs=db.executeQuery(Strsql);
rs.next();
String storeName=rs.getString("StoreName");
rs.close();
Strsql="select * from TestData where storeNo='"+storeNo+"' and houseno='"+houseNo+"' and testdate='"+rq+"';";
rs=db.executeQuery(Strsql);
if (!rs.next())
{
out.print("<script language='javascript'> alert('查询日期没有检温数据!');window.history.go(-1);</script>");
out.close();
}
byte[] buf=null;
int ret,k=0;

buf=rs.getBytes("TemperatureSet");
float[] wdz=new float[buf.length/2];//返回全部温度值
for(int i=0;i<buf.length;i=i+2)
{
ret=buf[i+1];
if (buf[i+1]<0)
ret=(ret+256);
ret=ret*256;
ret=ret+buf[i];
if (buf[i]<0)
ret=ret+256;
//out.print((short)ret);
wdz[k]=(float)((short)ret)/10;
//out.print(wdz[k]+"/");
k=k+1;
}
lovingprince 2008-07-17
  • 打赏
  • 举报
回复
你close那么多次干什么?close多了问题肯定出现了撒,呵呵
laorer 2008-07-17
  • 打赏
  • 举报
回复
java.sql.SQLException: Illegal operation on empty result set.

Resultset是空的,检查一下你的sql语句

81,094

社区成员

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

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