hibernate问题:java.sql.SQLException: could not reset reader

hepeng19861212 2008-09-30 08:38:40

//已知一个Blob类型的photo,要在jsp页面显示所对应的图片
public void showPhoto(){
InputStream is = null;
OutputStream os = null;
byte[] buffer = null;
//get response
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("image/jpeg");
try{
// if(examinee != null){
// System.out.println("examinee:"+examinee);//examinee是该方法所在的类的属性。
// HibernateSessionFactory.getSession().refresh(examinee, LockMode.WRITE);
// }
is = photo.getBinaryStream();//就是在这里报的错。photo是Blob类型
os = response.getOutputStream();
buffer = new byte[1024];
int bytesRead = 0;
while((bytesRead = is.read(buffer)) != -1){
os.write(buffer);
System.out.println("hepeng:outputStream writes "+bytesRead+" bytes!");
}
response.flushBuffer();
os.close();
is.close();

}
catch(SQLException e){
e.printStackTrace();
}
catch(IOException e){
e.printStackTrace();
}
}

报错信息:

java.sql.SQLException: could not reset reader
at org.hibernate.lob.BlobImpl.getBinaryStream(BlobImpl.java:106)
at org.hibernate.lob.SerializableBlob.getBinaryStream(SerializableBlob.java:62)
at com.hepeng.javabean.UserInfo.showPhoto(UserInfo.java:136)
at org.apache.jsp.registerSuccess_jsp._jspService(registerSuccess_jsp.java:93)
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:374)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
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.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:139)
at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:178)
at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:348)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:221)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:150)
..............................
...全文
949 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hepeng_waistcoat 2008-10-18
  • 打赏
  • 举报
回复
没办法了 ,只能用马甲顶一下了
hepeng19861212 2008-10-18
  • 打赏
  • 举报
回复
偶滴帖子都要沉到大海了。顶一下
jfheng 2008-10-06
  • 打赏
  • 举报
回复
使用 Awake 框架 这些都不是问题
http://hi.baidu.com/jfheng
qintao1203 2008-10-06
  • 打赏
  • 举报
回复
关注
coder_hui 2008-10-03
  • 打赏
  • 举报
回复
期待中 , 我的问题和你一样 , 看了半天感觉什么都没有问题 , GOOGLE , 百度都被我搜个遍也没看到解决的办法 , 只搜到一遍相关的文章,

http://geeklondon.com/blog/view/dummy-object-dummy-error

你看一下 , 对你可能有帮助 ,不过我试了这贴子里的方法还是没有用, 另外 , 问题解决了请和我说一下 , 谢谢!

QQ:125824392
tubage408 2008-09-30
  • 打赏
  • 举报
回复
os = response.getOutputStream(); 这里好像有问题,应该是 getServletOutputStream()

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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