Getting error while trying to display image(blob object) in jsp (Spring and Hibernate with Oracle Database) -



Getting error while trying to display image(blob object) in jsp (Spring and Hibernate with Oracle Database) -

this problem oracle 10g database. same code working fine mysql database.

my model class

package com.killerlinks.model; import java.io.serializable; import java.sql.blob; import javax.persistence.column; import javax.persistence.entity; import javax.persistence.generatedvalue; import javax.persistence.generationtype; import javax.persistence.id; import javax.persistence.lob; import javax.persistence.table; @entity @table(name="links") public class linkform implements serializable { /** * */ private static final long serialversionuid = 1l; @id @generatedvalue(strategy=generationtype.auto) @column(name="id") private long id; @column(name="tittle") private string tittle; @column(name="xdesc") private string desc; @column(name="url") private string url; @column(name="category") private string category; @column(name="xdate") private string date; @column(name="xtime") private string time; @column(name="tags") private string tags; @column(name="image") @lob private blob filedata; public long getid() { homecoming id; } public void setid(long id) { this.id = id; } public string gettittle() { homecoming tittle; } public void settittle(string tittle) { this.tittle = tittle; } public string getdesc() { homecoming desc; } public void setdesc(string desc) { this.desc = desc; } public string geturl() { homecoming url; } public void seturl(string url) { this.url = url; } public string getcategory() { homecoming category; } public void setcategory(string category) { this.category = category; } public string getdate() { homecoming date; } public void setdate(string date) { this.date = date; } public string gettime() { homecoming time; } public void settime(string time) { this.time = time; } public string gettags() { homecoming tags; } public void settags(string tags) { this.tags = tags; } @override public string tostring() { homecoming "linkform [tittle=" + tittle + ", url=" + url + ", category="+ category +", tags="+ tags +", desc="+ desc +", filedata="+filedata+" ]"; } public blob getfiledata() { homecoming filedata; } public void setfiledata(blob filedata) { this.filedata = filedata; } }

this method controller class helps maintain blob object model class.

private linkform preparingmodelbean(linkformbean linkformbean, multipartfile file) { linkform linkform = new linkform(); linkform.settittle(linkformbean.gettittle()); linkform.seturl(linkformbean.geturl()); linkform.setcategory(linkformbean.getcategory()); linkform.setdesc(linkformbean.getdesc()); linkform.settags(linkformbean.gettags()); date date = new date(); simpledateformat sdate = new simpledateformat("yyyy.mm.dd"); simpledateformat stime = new simpledateformat("hh:mm"); linkform.setdate(sdate.format(date)); linkform.settime(stime.format(date)); seek { blob blob = hibernate.createblob(file.getinputstream()); linkform.setfiledata(blob); } grab (ioexception e) { e.printstacktrace(); } homecoming linkform; }

this method controller class, trying read blob object

@requestmapping(value ="/image/{id}") public string image(@pathvariable("id")long id, httpservletresponse response) { linkform linkform = linkformservice.getalink(id); seek { response.setheader("content-disposition", "inline;filename=\"" +linkform.gettittle()+ "\""); outputstream out = response.getoutputstream(); response.setcontenttype("image/jpeg"); ioutils.copy(linkform.getfiledata().getbinarystream(), out); out.flush(); out.close(); } grab (ioexception e) { e.printstacktrace(); } grab (sqlexception e) { e.printstacktrace(); } homecoming null; }

when trying phone call specific image output getting

when trigger url browser http://localhost:7070/killerlinks/image/381.htm

this error displayed in console

java.sql.sqlexception: closed connection @ oracle.jdbc.driver.databaseerror.throwsqlexception(databaseerror.java:112) @ oracle.jdbc.driver.databaseerror.throwsqlexception(databaseerror.java:146) @ oracle.jdbc.driver.databaseerror.throwsqlexception(databaseerror.java:208) @ oracle.sql.blob.getdbaccess(blob.java:955) @ oracle.sql.blob.getbinarystream(blob.java:229) @ org.hibernate.lob.serializableblob.getbinarystream(serializableblob.java:39) @ com.killerlinks.controllers.categorycontroller.image(categorycontroller.java:63) @ sun.reflect.generatedmethodaccessor36.invoke(unknown source) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:25) @ java.lang.reflect.method.invoke(method.java:597) @ org.springframework.web.bind.annotation.support.handlermethodinvoker.doinvokemethod(handlermethodinvoker.java:710) @ org.springframework.web.bind.annotation.support.handlermethodinvoker.invokehandlermethod(handlermethodinvoker.java:167) @ org.springframework.web.servlet.mvc.annotation.annotationmethodhandleradapter.invokehandlermethod(annotationmethodhandleradapter.java:414) @ org.springframework.web.servlet.mvc.annotation.annotationmethodhandleradapter.handle(annotationmethodhandleradapter.java:402) @ org.springframework.web.servlet.dispatcherservlet.dodispatch(dispatcherservlet.java:771) @ org.springframework.web.servlet.dispatcherservlet.doservice(dispatcherservlet.java:716) @ org.springframework.web.servlet.frameworkservlet.processrequest(frameworkservlet.java:647) @ org.springframework.web.servlet.frameworkservlet.doget(frameworkservlet.java:552) @ javax.servlet.http.httpservlet.service(httpservlet.java:621) @ javax.servlet.http.httpservlet.service(httpservlet.java:728) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:305) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:210) @ org.apache.catalina.core.standardwrappervalve.invoke(standardwrappervalve.java:222) @ org.apache.catalina.core.standardcontextvalve.__invoke(standardcontextvalve.java:123) @ org.apache.catalina.core.standardcontextvalve.invoke(standardcontextvalve.java) @ org.apache.catalina.authenticator.authenticatorbase.invoke(authenticatorbase.java:472) @ org.apache.catalina.core.standardhostvalve.__invoke(standardhostvalve.java:171) @ org.apache.catalina.core.standardhostvalve.invoke(standardhostvalve.java) @ org.apache.catalina.valves.errorreportvalve.invoke(errorreportvalve.java:99) @ org.apache.catalina.valves.accesslogvalve.invoke(accesslogvalve.java:931) @ org.apache.catalina.core.standardenginevalve.invoke(standardenginevalve.java:118) @ org.apache.catalina.connector.coyoteadapter.service(coyoteadapter.java:407) @ org.apache.coyote.http11.abstracthttp11processor.process(abstracthttp11processor.java:1004) @ org.apache.coyote.abstractprotocol$abstractconnectionhandler.process(abstractprotocol.java:589) @ org.apache.tomcat.util.net.jioendpoint$socketprocessor.run(jioendpoint.java:312) @ java.util.concurrent.threadpoolexecutor$worker.runtask(threadpoolexecutor.java:886) @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:908) @ java.lang.thread.run(thread.java:619) java.sql.sqlexception: closed connection @ oracle.jdbc.driver.databaseerror.throwsqlexception(databaseerror.java:112) @ oracle.jdbc.driver.databaseerror.throwsqlexception(databaseerror.java:146) @ oracle.jdbc.driver.databaseerror.throwsqlexception(databaseerror.java:208) @ oracle.sql.blob.getdbaccess(blob.java:955) @ oracle.sql.blob.getbinarystream(blob.java:229) @ org.hibernate.lob.serializableblob.getbinarystream(serializableblob.java:39) @ com.killerlinks.controllers.categorycontroller.image(categorycontroller.java:77) @ sun.reflect.generatedmethodaccessor36.invoke(unknown source) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:25) @ java.lang.reflect.method.invoke(method.java:597) @ org.springframework.web.bind.annotation.support.handlermethodinvoker.doinvokemethod(handlermethodinvoker.java:710) @ org.springframework.web.bind.annotation.support.handlermethodinvoker.invokehandlermethod(handlermethodinvoker.java:167) @ org.springframework.web.servlet.mvc.annotation.annotationmethodhandleradapter.invokehandlermethod(annotationmethodhandleradapter.java:414) @ org.springframework.web.servlet.mvc.annotation.annotationmethodhandleradapter.handle(annotationmethodhandleradapter.java:402) @ org.springframework.web.servlet.dispatcherservlet.dodispatch(dispatcherservlet.java:771) @ org.springframework.web.servlet.dispatcherservlet.doservice(dispatcherservlet.java:716) @ org.springframework.web.servlet.frameworkservlet.processrequest(frameworkservlet.java:647) @ org.springframework.web.servlet.frameworkservlet.doget(frameworkservlet.java:552) @ javax.servlet.http.httpservlet.service(httpservlet.java:621) @ javax.servlet.http.httpservlet.service(httpservlet.java:728) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:305) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:210) @ org.apache.catalina.core.standardwrappervalve.invoke(standardwrappervalve.java:222) @ org.apache.catalina.core.standardcontextvalve.__invoke(standardcontextvalve.java:123) @ org.apache.catalina.core.standardcontextvalve.invoke(standardcontextvalve.java) @ org.apache.catalina.authenticator.authenticatorbase.invoke(authenticatorbase.java:472) @ org.apache.catalina.core.standardhostvalve.__invoke(standardhostvalve.java:171) @ org.apache.catalina.core.standardhostvalve.invoke(standardhostvalve.java) @ org.apache.catalina.valves.errorreportvalve.invoke(errorreportvalve.java:99) @ org.apache.catalina.valves.accesslogvalve.invoke(accesslogvalve.java:931) @ org.apache.catalina.core.standardenginevalve.invoke(standardenginevalve.java:118) @ org.apache.catalina.connector.coyoteadapter.service(coyoteadapter.java:407) @ org.apache.coyote.http11.abstracthttp11processor.process(abstracthttp11processor.java:1004) @ org.apache.coyote.abstractprotocol$abstractconnectionhandler.process(abstractprotocol.java:589) @ org.apache.tomcat.util.net.jioendpoint$socketprocessor.run(jioendpoint.java:312) @ java.util.concurrent.threadpoolexecutor$worker.runtask(threadpoolexecutor.java:886) @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:908) @ java.lang.thread.run(thread.java:619) hibernate: select linkform0_.id id1_0_, linkform0_.category category1_0_, linkform0_.xdate xdate1_0_, linkform0_.xdesc xdesc1_0_, linkform0_.image image1_0_, linkform0_.tags tags1_0_, linkform0_.xtime xtime1_0_, linkform0_.tittle tittle1_0_, linkform0_.url url1_0_, linkform0_.xviews xviews1_0_ links linkform0_ linkform0_.id=?

please help me prepare bug. want image displayed. in advance.

i think controller should this:

@requestmapping(value ="/image/{id}") public void image(@pathvariable("id")long id, httpservletresponse response) { linkform linkform = linkformservice.getalink(id); seek { response.setcontenttype("application/x-download"); response.setheader("content-disposition", "attachment; filename=" + filename); outputstream out = response.getoutputstream(); response.setcontenttype("image/jpeg"); ioutils.copy(linkform.getfiledata().getbinarystream(), out); out.flush(); out.close(); } grab (ioexception e) { e.printstacktrace(); } grab (sqlexception e) { e.printstacktrace(); } }

it send file direct download.

in add-on can add together image file html page

<img src="/image/5"></img>

spring hibernate blob

Comments

Popular posts from this blog

web services - java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.proxy.Enhancer -

Accessing MATLAB's unicode strings from C -

javascript - mongodb won't find my schema method in nested container -