Hi Friends,
I am receiving the sam eproblem which you have put on the site.I am following MVC 
architecture and working with IBM WPOrtal server.I have my JSP packaged within the par 
file(PORTLET ARCHIVE).I have a code in my JSP which writes some zip content to the 
browser using servletoutput stream The aim is to download the zip file to the client 
machine my invoking the browsers default download box.This works fine if i have the 
JSP outside the PAR file but when i have this JSP inside the par it gives the 
exception.
java.lang.IllegalStateException Writer has already been obtained.
Please let me know the solution ASAP.Its important for me.
pasted below is the piece of code i am using in the jsp

<% 

// Create a object of CreateZip

CreateZip createZip = new CreateZip();


// It stores Report Path.

String reportPath = "C:/www/web-data/fieldconnect/llreports/YASIR.txt";

// Create a object of PrintWriter

PrintWriter printWriter = new PrintWriter(new FileOutputStream(new File(reportPath)));


printWriter.print("WritWriWritWWrWWriting data to text file...Writing data to text 
file...riting data to text file...Writing data to text file...Writing data to text 
file...Writing data to text file...iting data to text file...Writing data to text 
file...riting data to text file...Writing data to text file...ing data to text 
file...Writing data to text file...ting data to text file...Writing data to text 
file...ing data to text file...Writing data to text file...Writing data to text 
file...Writing data to text file...Writing data to text file...Writing data to text 
file");

printWriter.flush();

printWriter.close();


// It stores path of text file

String path = "C:/www/web-data/fieldconnect/llreports/";

// It stores name of text file

String fileName = "YASIR.txt";


// making zip of text file generated 

createZip.makeZip(fileName,path);

String zipPath = "C:/www/web-data/fieldconnect/llreports/YASIR.zip";

File deleteZipFile = new File(zipPath);


int zipsize = (int)deleteZipFile.length();

byte abyte0[] = new byte[zipsize];

ByteArrayOutputStream ba = new ByteArrayOutputStream(zipsize);

File deleteTxtFile = new File(reportPath);

if (deleteTxtFile.exists()){

deleteTxtFile.delete();

}



//PrintWriter zipWriter = new PrintWriter(new FileOutputStream());

FileInputStream fileInputStream = new FileInputStream(zipPath);


BufferedInputStream bufferedinputstream = new BufferedInputStream(fileInputStream);


int i;

while((i = bufferedinputstream.read(abyte0)) != -1){ 

ba.write(abyte0,0,i);

}


bufferedinputstream.close();

HttpServletResponse sResponse = 
(HttpServletResponse)((PortletResponseImpl)response).getServletResponse();

sResponse.setContentType("application/zip");

sResponse.setContentLength(ba.size());

sResponse.setHeader("Content-Type","application/octet-stream");

sResponse.setHeader("Content-Disposition","attachment; filename=\"YASIR.zip\"");

if (ba != null) {

ServletOutputStream sout = sResponse.getOutputStream();


ba.writeTo(sout);


ba.flush();

ba.close();

sout.close();

}



if (deleteZipFile.exists()){

deleteZipFile.delete();

}

%>


Thanks,
Yasir.

Reply via email to