Hi!
I have a HSSF document which can be written to an output stream.
However, I want to stream it to the website visitor, which requires an
inputstream... I have tried the following, but it somehow doesn't seem
to work.
Anybody know what can be done to fix it?
final PipedInputStream inputStream = new PipedInputStream();
final PipedOutputStream out;
try {
out = new PipedOutputStream(inputStream);
} catch (IOException e) {
throw new RuntimeException(e);
}
Executors.newSingleThreadExecutor().execute(new Runnable() {
@Override
public void run() {
try {
wb.write(out);
} catch (IOException e) {
MarkupUtils.handleUnexpectedException(e);
}
}
});
IResourceStream resourceStream = new IResourceStream() {
/**
* @see org.apache.wicket.util.resource.IResourceStream#close()
*/
public void close() throws IOException {
inputStream.close();
}
/**
* @see org.apache.wicket.util.resource.IResourceStream#getContentType()
*/
public String getContentType() {
return getAlternateContentType();
}
/**
* @see org.apache.wicket.util.resource.IResourceStream#getInputStream()
*/
public InputStream getInputStream()
throws ResourceStreamNotFoundException {
return inputStream;
}
/**
* @see org.apache.wicket.util.resource.IResourceStream#getLocale()
*/
public Locale getLocale() {
throw new IllegalAccessError("Method not implemented.");
}
/**
* @see org.apache.wicket.util.resource.IResourceStream#length()
*/
public long length() {
try {
return inputStream.available();
} catch (IOException e) {
MarkupUtils.handleUnexpectedException(e);
}
return 0;
}
/**
* @see
org.apache.wicket.util.resource.IResourceStream#setLocale(java.util.Locale)
*/
public void setLocale(Locale locale) {
throw new IllegalAccessError("Method not implemented.");
}
/**
* @see org.apache.wicket.util.watch.IModifiable#lastModifiedTime()
*/
public Time lastModifiedTime() {
return
Time.milliseconds(DatabaseServices.getCurrentTimestamp().getTime());
}
};
java.io.IOException: Pipe closed
at java.io.PipedInputStream.checkStateForReceive(Unknown Source)
at java.io.PipedInputStream.receive(Unknown Source)
at java.io.PipedOutputStream.write(Unknown Source)
at java.io.OutputStream.write(Unknown Source)
at org.apache.poi.poifs.storage.BigBlock.doWriteData(BigBlock.java:55)
at
org.apache.poi.poifs.storage.DocumentBlock.writeData(DocumentBlock.java:220)
at org.apache.poi.poifs.storage.BigBlock.writeBlocks(BigBlock.java:86)
at
org.apache.poi.poifs.filesystem.POIFSDocument$BigBlockStore.writeBlocks(POIFSDocument.java:603)
at
org.apache.poi.poifs.filesystem.POIFSDocument.writeBlocks(POIFSDocument.java:275)
at
org.apache.poi.poifs.filesystem.POIFSFileSystem.writeFilesystem(POIFSFileSystem.java:390)
at
org.apache.poi.hssf.usermodel.HSSFWorkbook.write(HSSFWorkbook.java:1168)
**
Martin
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]