Actually what you need to do is, read the examples given in FOP. Look for FopServlet.java file. It describes how you can embed fop in servlet.
Second thing, you need to pass Document obj of XML file. What are you getting as xmlParam? If you are getting xml file name, than you need to create Document object from it before passing it to renderXML method. For that you should know how JDOM/DOM is working. Jasmin -----Original Message----- From: Adam Shelley [mailto:[EMAIL PROTECTED] Sent: Friday, March 21, 2003 4:47 PM To: [EMAIL PROTECTED] Subject: RE: url to xml/xsl file in servlet thank you for u're patience, those modifications you sent got me way closer to compiling weee, ne ways,... here is my code for doget with the modifications you suggested. I probably need to create some sort of driver object here cause it complains about that and i don't think it likes sending xmlparam into new JDOMSource. also, the call to renderXML doesn't work because input is not defined. here is the code and the errors generated by ant: public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException { if (log == null) { log = new ConsoleLogger(ConsoleLogger.LEVEL_WARN); MessageHandler.setScreenLogger(log); } try { String foParam = request.getParameter(FO_REQUEST_PARAM); String xmlParam = request.getParameter(XML_REQUEST_PARAM); String xslParam = request.getParameter(XSL_REQUEST_PARAM); if (foParam != null) { File fofile = new File(foParam); //log.warn("FO: "+fofile.getCanonicalPath()); FileInputStream file = new FileInputStream(fofile); renderFO(new InputSource(file), response); } else if ((xmlParam != null) && (xslParam != null)) { URL fileOpenServlet = new URL("http://extranet.inland-group.net/vsearchnew/xsl/vehpdf.xsl"); HttpURLConnection servletConnection = (HttpURLConnection) fileOpenServlet.openConnection(); InputStream xslInStream = servletConnection.getInputStream(); Transformer transformer = TransformerFactory.newInstance().newTransformer(new StreamSource(xslInStream)); transformer.transform(new JDOMSource(xmlParam), new SAXResult(driver.getContentHandler())); //XSLTInputHandler input = // new XSLTInputHandler(new File(xmlParam),xslInStream); renderXML(input, response); } else { PrintWriter out = response.getWriter(); out.println("<html><head><title>Error</title></head>\n"+ "<body><h1>FopServlet Error</h1><h3>No 'fo' "+ "request param given.</body></html>"); } } catch (ServletException ex) { throw ex; } catch (Exception ex) { throw new ServletException(ex); } } [javac] C:\fop-0.20.5rc2\examples\servlet\src\FopServlet.java:84: cannot res olve symbol [javac] symbol : constructor JDOMSource (java.lang.String) [javac] location: class org.jdom.transform.JDOMSource [javac] transformer.transform(new JDOMSource(xmlParam), new SAXResult(driver.getContentHandler())); [javac] ^ [javac] C:\fop-0.20.5rc2\examples\servlet\src\FopServlet.java:84: cannot res olve symbol [javac] symbol : variable driver [javac] location: class FopServlet [javac] transformer.transform(new JDOMSource(xmlParam), new SAXResult(driver.getContentHandler())); [javac] ^ [javac] C:\fop-0.20.5rc2\examples\servlet\src\FopServlet.java:87: cannot res olve symbol [javac] symbol : variable input [javac] location: class FopServlet [javac] renderXML(input, response); [javac] ^ [javac] 3 errors probably needs just a few tweaks, but like i said no clues to be found over here hehe. -Adam -----Original Message----- From: Jasmin Mehta [mailto:[EMAIL PROTECTED] Sent: March 21, 2003 1:24 PM To: [EMAIL PROTECTED] Subject: RE: url to xml/xsl file in servlet You need to add below imports in your code: import org.jdom.*; import org.jdom.transform.*; import org.jdom.transform.JDOMSource; import org.jdom.output.XMLOutputter; import org.jdom.input.SAXBuilder; import org.xml.sax.InputSource; import org.xml.sax.XMLReader; import javax.xml.transform.*; import javax.xml.transform.sax.*; import javax.xml.transform.stream.*; You need to add JDOM library, i.e jdom.jar. And xalan.jar and xerces.jar library too. And than you can use below whole method in your fop servlet: public void renderXML(Document xmlsource, InputStream xslobj, HttpServletResponse response) throws ServletException { try { response.setContentType("application/pdf"); Driver driver = new Driver(); driver.setLogger(log); driver.setOutputStream(response.getOutputStream()); driver.setRenderer(Driver.RENDER_PDF); Transformer transformer=TransformerFactory.newInstance() .newTransformer(new StreamSource(xslobj)); transformer.transform(new JDOMSource(xmlsource), new SAXResult(driver.getContentHandler())); } catch (Exception ex) { // throw new ServletException(ex); ex.printStackTrace(); System.out.println("exception in fopservlet renderXML: "+ex.getMessage()); } } } Pl feel free to ask if you have any trouble. Because I have done so much trial and error to get this work done. And I understand the troubles. Jasmin -----Original Message----- From: Adam Shelley [mailto:[EMAIL PROTECTED] Sent: Friday, March 21, 2003 4:10 PM To: [EMAIL PROTECTED] Subject: RE: url to xml/xsl file in servlet Thank you for your reply. What library do you need for the StreamSource class? i copied the xml-apis from fop into the lib directory of the servlet and added it to the build.xml file but it doesn't seem to like import org.xml.transform.*; it says package does not exist. but i did see a streamsourceclass within the xml-apis.jar file so i dunno how to access it. (please excuse me, i've never programmed java in my life this is all a foriegn thing for me. I just need to get this functionality up and running or else the security of my system with fop isn't gonna work. :( ) -Adam -----Original Message----- From: Jasmin Mehta [mailto:[EMAIL PROTECTED] Sent: March 21, 2003 12:48 PM To: [EMAIL PROTECTED] Subject: RE: url to xml/xsl file in servlet Please use Transformer transformer=TransformerFactory.newInstance() .newTransformer(new StreamSource(xslInStream)); transformer.transform(new JDOMSource(xmlsource), new SAXResult(driver.getContentHandler())); instead of XSLTInputhandler --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
