Forum » Programiranje » Java - JBoss - Servlet - getOutputStream() has already been called for this response ???
Java - JBoss - Servlet - getOutputStream() has already been called for this response ???
bboyspin ::
A ma kdo kako resitev za tale problemcek:
getOutputStream() has already been called for this response
koda:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
String appName = "aplikacija.zip";
String partyId = "";
String partyName = "";
String filename = "";
try {
partyId = (String) request.getParameter("partyid");
} catch(Exception e) {}
if((partyId != null) && !partyId.equals("")) {
ItemLocal party = ses.findItem(Integer.valueOf(partyId));
partyName = party.getItemName();
ImportZIP zip = new ImportZIP(appName);
zip.setOutputDir(r.getUploadPath());
zip.setWorkingDir(r.getDownloadPath());
zip.copyZIP(appName, appName);
zip.setWorkingDir(r.getUploadPath());
zip.writePartyData(partyId, partyName);
zip.addZip(appName, "partydata.txt");
}
try {
filename = r.getUploadPath() + "aplikacija.zip";
FileInputStream ins = new FileInputStream(filename);
int data;
byte[] buffer = new byte[4096];
while((data = ins.read(buffer)) !=-1) {
baos.write(buffer);
}
ins.close();
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition","attachment; filename="+appName+";");
response.setContentLength(baos.size());
ServletOutputStream output = response.getOutputStream();
baos.writeTo(output);
baos.close();
output.close();
output.flush();
}
catch (Exception ex) {}
hvala za pomoc, jest sm ze obupal ;)
Spin
getOutputStream() has already been called for this response
koda:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
String appName = "aplikacija.zip";
String partyId = "";
String partyName = "";
String filename = "";
try {
partyId = (String) request.getParameter("partyid");
} catch(Exception e) {}
if((partyId != null) && !partyId.equals("")) {
ItemLocal party = ses.findItem(Integer.valueOf(partyId));
partyName = party.getItemName();
ImportZIP zip = new ImportZIP(appName);
zip.setOutputDir(r.getUploadPath());
zip.setWorkingDir(r.getDownloadPath());
zip.copyZIP(appName, appName);
zip.setWorkingDir(r.getUploadPath());
zip.writePartyData(partyId, partyName);
zip.addZip(appName, "partydata.txt");
}
try {
filename = r.getUploadPath() + "aplikacija.zip";
FileInputStream ins = new FileInputStream(filename);
int data;
byte[] buffer = new byte[4096];
while((data = ins.read(buffer)) !=-1) {
baos.write(buffer);
}
ins.close();
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition","attachment; filename="+appName+";");
response.setContentLength(baos.size());
ServletOutputStream output = response.getOutputStream();
baos.writeTo(output);
baos.close();
output.close();
output.flush();
}
catch (Exception ex) {}
hvala za pomoc, jest sm ze obupal ;)
Spin
kopernik ::
Zamenjaj vrstni red vrstic:
output.close();
output.flush();
Ko stream enkrat zapreš, je konec muzike...
output.close();
output.flush();
Ko stream enkrat zapreš, je konec muzike...
kopernik ::
hmm, tak exception dobis, ce veckrat pises na response (torej veckrat klices getOutputStream()). Ampak iz tvoje kode to ni razvidno. Tako da nimam pojma, zakaj dobis to napako. A je to vse? vsa koda, ki ima zvezo z response-om?
kopernik ::
A lahko poveš, katera vrstica vrže exception? A dobiš exception že tukaj:
ServletOutputStream output = response.getOutputStream();
sli kasneje pri pisanju ?
ServletOutputStream output = response.getOutputStream();
sli kasneje pri pisanju ?
bboyspin ::
Ok, sm nekak pogruntu :)
Problem pr teh servletih je to, da ti jav to napako vedno ko mu kaj ni vsec, in u bistvu potem sploh ne ves kaj je narobe... Pr men mu ni bil vsec nacin kako sem klical servlet, tako da mi zdej nekako dela...
Spin
Problem pr teh servletih je to, da ti jav to napako vedno ko mu kaj ni vsec, in u bistvu potem sploh ne ves kaj je narobe... Pr men mu ni bil vsec nacin kako sem klical servlet, tako da mi zdej nekako dela...
Spin
bboyspin ::
ok mam ze nov problem :)
Ko poklicem servlet za download mi dela vse lepo, dobim datoteko, samo potem po downloadu mi pa crknejo vsi linki? samo tisti v glavnem frejmu se delajo... mam pa zgornji in desni frame (menija) ter enega glavnega kjer se izpisujejo zadeve ... (dobil sem ze narejeno aplikacijo, drugace jest ne uporabljam frejmov ;) )
Spin
Ko poklicem servlet za download mi dela vse lepo, dobim datoteko, samo potem po downloadu mi pa crknejo vsi linki? samo tisti v glavnem frejmu se delajo... mam pa zgornji in desni frame (menija) ter enega glavnega kjer se izpisujejo zadeve ... (dobil sem ze narejeno aplikacijo, drugace jest ne uporabljam frejmov ;) )
Spin
kopernik ::
Žal boš moral bolj natančno razložiti. Kam kažejo tisti linki? Je njihov cilj odvisen od parametrov? Kakšen mini proxy vmes, ki forwardira naprej? itd...
Problemov je lahko več - od napačnega refresha strani do kakšnega problema pri cache-iranju na servlet containerju. Aja, ko smo že pri tem. Kateri servlet container uporabljaš v JBOSSu? Ker vem, da JBOSS podpira različne containerje - Tomcat, Resin, itd... Osebno imam največ izkušenj s Tomcatom.
Čeprav niti ni logično, da pred downloadom linki delajo, po njem pa ne ... Čudne probleme maš
Problemov je lahko več - od napačnega refresha strani do kakšnega problema pri cache-iranju na servlet containerju. Aja, ko smo že pri tem. Kateri servlet container uporabljaš v JBOSSu? Ker vem, da JBOSS podpira različne containerje - Tomcat, Resin, itd... Osebno imam največ izkušenj s Tomcatom.
Čeprav niti ni logično, da pred downloadom linki delajo, po njem pa ne ... Čudne probleme maš
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [JAVA] HTTPS clientOddelek: Programiranje | 3166 (1896) | peterv6i |
» | Jasper subreportOddelek: Programiranje | 1626 (1375) | nightrage |
» | [java] Kako v memoriji pretvoriti String objekt v File objekt ? - neka metoda ga zahtOddelek: Programiranje | 2249 (2249) | infiniteLoop |
» | [java] Runtime.exec()Oddelek: Programiranje | 1874 (1747) | borchi |
» | Kako pošiljanje datotek v JAVI.Oddelek: Programiranje | 1829 (1700) | kopernik |