Hi,
your PDF file has to be accessible for tomcat, for example: Imagine your web application is stored under %TOMCAT_ROOT%/webapps/yourapp Then your PDF file has to be somewhere in your 'yourapp' directory. It is the same as html pages: you referene them (e.g. in html) with <a href="foo.html"> - relative path. So this link in http://localhost/bla.html will link to http://localhost/foo.html.
Try this: put your PDF file under your webapp-root (called 'yourapp' above...) directory. And in your jsp:
response.setRedirect(outPDF); // outPDF is "TMP.PDF" (without c:....) // tomcat will look for 'yourapp/TMP.PDF' // If your JSP is e.g. accessible under http://localhost/myjsp.jsp // it will redirect to http://localhost/TMP.PDF which is also // remote accessible (if read access is permitted)
I never tried response.setRedirect(), but I think this will work ;-)
Marko
At 17:05 06.11.2002 +0100, you wrote:
I tried it , it works, but I have one great suspicion:
Will it work even on remote server ?
response.sendRedirect(outPDF); // outPDF is "C:/Program Files/Apache Tomcat 4.0/Fop/TMP.PDF"
I have Tomcat and browser on one PC . Doesn't the browser thus open the PDF file directly, bypassing Tomcat ? If so, I think I should use URL as parameter. But how can I find out http address from inside the servlet?
Thanks for any comments.
> [EMAIL PROTECTED] wrote: > > > Yesterday, after a few good advices there from fop users I successfuly used > > this code to show pdf content in browser. It works in my JDeveloper 9i. > > > > File inputFile = new File(pdfFile); > > FileReader fr = new FileReader(inputFile); > > > > ByteArrayOutputStream baos = new ByteArrayOutputStream(); > > int ch; > > while((ch = fr.read()) != -1) { > > baos.write(ch); > > } > > > > byte[] content = baos.toByteArray(); > > response.setContentType("application/pdf"); > > response.setContentLength(content.length); > > response.getOutputStream().write(content); > > response.getOutputStream().flush(); > > Looks too convolute to me. If you have already created pdf file on a disk, why > do you process it by hands instead of rely on a web server? Just redirect > browser to the file, that will emulate reading static pdf, which works okay > even in IE (well, at least if extension is pdf). > I mean > response.sendRedirect("/foo/bar.pdf"); > > -- > Oleg Tkachenko > eXperanto team > Multiconn Technologies, Israel
