Hi, you must implementing the UriResolver and set your fopFactory with it.
fopFactoy.setUriResolver() regards, Philippe 2010/2/18 pjmorce <pjcarva...@gmail.com> > > Hello > > I used a simple example on the Internet about how to use FOP in java > (http://javaboutique.internet.com/tutorials/FOP/): > > - I Created a simple Java application with a class that takes an XML and > converts it into a PDF (using a XSL) containing an image. The name of my > class is Process.java and it has a method "process". It works fine when > called directly as a java application. > > - I Created a simple web service that just call this "process" method of > that class. However, when i call the web service, i get an error: > "[ERROR] Image not found: img/logo.gif" > => The PDF is created but without the image. > > Here is the code of my Process.java class: > > public static String process(String xml, String xsl) { > String sResult = null; > > > try { > > ByteArrayOutputStream foOut = new ByteArrayOutputStream(); > > ByteArrayOutputStream bOut = new ByteArrayOutputStream(); > InputStream iss = > Process.class.getClassLoader().getResourceAsStream(brique); > copyFile(new BufferedInputStream(iss), bOut); > > SAXBuilder builder = new SAXBuilder(); > Document document = builder.build(new > ByteArrayInputStream(xml.getBytes())); > > TransformerFactory factory = > TransformerFactory.newInstance(); > InputStream iXsl = > Process.class.getClassLoader().getResourceAsStream(xsl); > StreamSource iSource = new StreamSource(iXsl); > > Transformer foTrans = factory.newTransformer(iSource); > > StreamSource strSourceXML = new StreamSource(new > ByteArrayInputStream(xml.getBytes())); > foTrans.transform(strSourceXML, new StreamResult(foOut)); > foOut.flush(); > > ByteArrayOutputStream pdfOut = new ByteArrayOutputStream(); > TransformerFactory tFactoryFO2PDF = > TransformerFactory.newInstance(); > Transformer pdfTrans = tFactoryFO2PDF.newTransformer(); > FopFactory fopFactory = FopFactory.newInstance(); > FOUserAgent foUserAgent = fopFactory.newFOUserAgent(); > Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, > foUserAgent, pdfOut); > Result res = new SAXResult(fop.getDefaultHandler()); > StreamSource streamSourceXml = new StreamSource(new > ByteArrayInputStream(foOut.toByteArray())); > pdfTrans.transform(streamSourceXml, res); > > java.io.File file = new java.io.File("d:/res.pdf"); > FileOutputStream foStream = new FileOutputStream(file); > pdfOut.writeTo(foStream); > > > } catch(Exception e) { > e.printStackTrace(); > } > > return sResult; > } > > private static boolean copyFile(InputStream in, OutputStream out) { > try { > > int c; > while ((c = in.read()) != -1) > out.write(c); > > in.close(); > out.close(); > } catch (IOException io) { > return false; > } > return true; > } > > > The code of my web service is just: > > public static String process(String xml, String xsl) { > String sResult = null; > > try { > sResult = Process.process(xml, xsl); > System.out.println("sss"); > } catch(Exception e) { > e.printStackTrace(); > } > return sResult; > } > > The web service has the JAR of the Java application in his classpath. The > content of the Jar file is the following one: > Name Path > briques.xsd > logo.gif img\ > Manifest.mf meta-inf\ > Process.class tst > saxon-licence.lic > xsl2.xslt > > I call the web service with the following parameters: > > xml = "<?xml version='1.0' encoding='UTF-8'?>"+ > "<Catalog>"+ > "<Book>"+ > > "<Title>Mastering EJB</Title>"+ > > "<Author>Ed Roman</Author>"+ > > "<Price>$45.00</Price>"+ > "</Book>"+ > "<Book>"+ > > "<Title>Design Patterns</Title>"+ > > "<Author>Erich Gamma</Author>"+ > > "<Price>$50.00</Price>"+ > "</Book>"+ > "<Book>"+ > > "<Title>Effective Java</Title>"+ > > "<Author>Josch Bloch</Author>"+ > > "<Price>$30.00</Price>"+ > "</Book>" + > "</Catalog>"; > > xsl = "xsl2.xslt"; > > In the xsl2.xslt I have a part of code like this to insert the image on the > pdf: > ... > <fo:block> > <fo:external-graphic src="img/logo.gif"/> > </fo:block> > ... > > > The XSL is found in the JAR because the PDF file is generated. But the > following error still appearing and the image is not inserted on the PDF: > [ERROR] Image not found: img/logo.gif > > What am I doing wrong? > > Thanks > Regards > -- > View this message in context: > http://old.nabble.com/-ERROR--Image-not-found-tp27636263p27636263.html > Sent from the FOP - Users mailing list archive at Nabble.com. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: fop-users-unsubscr...@xmlgraphics.apache.org > For additional commands, e-mail: fop-users-h...@xmlgraphics.apache.org > >