6 kwietnia 2011

Apache FOP na Apache Tomcat cz.4

Nie odpuściłem tego servleta... Po pewnych walkach (przypominam, że to moje pierwsze programowanie w Javie), udało się skompilować fop.war. Dokonane zmiany wyglądają tak:
--- FopServlet.java.org 2010-07-12 21:34:45.000000000 +0200
+++ FopServlet.java     2011-04-06 19:00:01.639060332 +0200
@@ -44,6 +44,10 @@ import org.apache.fop.apps.Fop;
 import org.apache.fop.apps.FopFactory;
 import org.apache.fop.apps.MimeConstants;

+import org.xml.sax.SAXException;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
 /**
  * Example servlet to generate a PDF from a servlet.
  * 
@@ -77,6 +81,8 @@ public class FopServlet extends HttpServ /** Name of the parameter used for the XSLT file */ protected static final String XSLT_REQUEST_PARAM = "xslt"; + private final Log log = LogFactory.getLog(FopServlet.class); + /** The TransformerFactory used to create Transformer instances */ protected TransformerFactory transFactory = null; /** The FopFactory used to create Fop instances */ @@ -94,6 +100,13 @@ public class FopServlet extends HttpServ //Configure FopFactory as desired this.fopFactory = FopFactory.newInstance(); this.fopFactory.setURIResolver(this.uriResolver); + try { + fopFactory.setUserConfig(new File("userconf.xml")); + } catch (IOException e) { + log.error("No such file or directory", e); + } catch (SAXException e) { + throw new ServletException(e); + } configureFopFactory(); }
Plik konfiguracyjny userconf.xml wrzucamy po prostu do katalogu z Tomcat'em. Jeśli brak jest pliku, generowany jest log, jeśli są błędy w strukturze xml, zgłaszany jest wyjątek.

1 komentarz:

Anonimowy pisze...

Dziekuje ci barzo za pomoc, myslalam ze juz nigdy nie skonfiguruje FopServlet. Wszystko smiga jak nalezy. Po stokroc dziekuje!!!!!!