I noticed I did not modify the second newTransformer (the one that creates
templates) correctly for the email. THe correct method is (sorry):

public void newTransformer(String id, URL xsl)
                throws TransformerConfigurationException {

      File xslt_file = new File(xsl.toString());
      long xsl_last_mod = xslt_file.lastModified();

      Templates entry = (Templates) CONTEXT.getAttribute(id);

      if (entry == null) {
         Source xsl_source = new StreamSource(xslt_file);
         TransformerFactory transfact = TransformerFactory.newInstance();
         Templates templates = transfact.newTemplates(xsl_source);
System.out.println(id + " Templates Obj: " + templates);

         CONTEXT.setAttribute(id, templates);

      }
   }

> -----Original Message-----
> From: Robert Koberg [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, October 02, 2001 12:23 PM
> To: [EMAIL PROTECTED]
> Subject: XSLTC: help - Error when trying to compile servlets - longish
> w/ code samples
>
>
> Hello!
>
> I am trying to compile multiple stylesheets at web-appserver-startup.  I
> have tried a couple of ways.
> -------------------------------------
> First way
> -------------------------------------
> The most simple sets the URL to an XSL resource and then sends it to:
>
> public void newTransformer(URL xsl) {
>       XSLTC xsltc = new XSLTC();
>       xsltc.init();
>       xsltc.compile(xsl);
>    }
>
> Doing this causes an Error in the compilation of the Init Servlet
> [Error 1 -
> below]. I have the jaxp.properties file with the following entries:
> javax.xml.transform.TransformerFactory=org.apache.xalan.xsltc.runt
> ime.Transf
> ormerFactoryImpl
> javax.xml.parsers.DocumentBuilderFactory=javax.xml.parsers.Documen
> tBuilderFa
> ctory
> javax.xml.parsers.SAXParserFactory=javax.xml.parsers.SAXParserFactory
> -------------------------------------
> Second way
> -------------------------------------
> If I try another way to compile the XSL, the System output says the
> ...xsltc.TransletTemplate@xxxxxs were created:
>
> public void newTransformer(String id, URL xsl) {
>
>       File xslt_file = new File(xsl);
>       long xsl_last_mod = xslt_file.lastModified();
>       // CONTEXT = global ServletContext var - basically a Hashtable
>       Templates entry = (Templates) CONTEXT.getAttribute(id);
>
>       if (entry == null) {
>          Source xsl_source = new StreamSource(xslt_file);
>          TransformerFactory transfact = TransformerFactory.newInstance();
>          Templates templates = transfact.newTemplates(xsl_source);
> System.out.println(id + " Templates Obj: " + templates);
>          // global ServletContext var - basically a Hashtable
>          CONTEXT.setAttribute(id, templates);
>
>       }
>    }
>
> When I try to access the compiled XSL with the method directly
> below I get a
> different error sent to the browser (500). They seem to be the same error
> [Error 2 - below].
>
> public void doTransform(String source_uri,
>                               Templates style,
>                               Hashtable params,
>                               PrintWriter out)
>     throws FileNotFoundException, TransformerException  {
>
>       try {
>
>          Transformer transformer = style.newTransformer();
>          transformer.transform ((Source) new InputSource(source_uri),
>                                       new StreamResult(out));
>
>       } catch (Exception e) {
>          out.write(e.getMessage());
>          e.printStackTrace(out);
>       }
>    }
>
>
> ----------------------------------------------
> Please help. I don't understand what I am doing wrong.
>
> Thanks!
> -Rob
> ----------------------------------------------
> ERRORS
> ===== ERROR 1 =================
> [2001/10/02 12:01:19] de/fub/bytecode/generic/InstructionConstants
> java.lang.NoClassDefFoundError:
> de/fub/bytecode/generic/InstructionConstants
>       at java.lang.ClassLoader.defineClass0(Native Method)
>       at java.lang.ClassLoader.defineClass(ClassLoader.java:486)
>       at
> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:111)
>       at java.net.URLClassLoader.defineClass(URLClassLoader.java:248)
>       at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
>       at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>       at java.lang.ClassLoader.loadClass(ClassLoader.java:297)
>       at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)
>       at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
>       at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)
>       at java.lang.ClassLoader.defineClass0(Native Method)
>       at java.lang.ClassLoader.defineClass(ClassLoader.java:486)
>       at
> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:111)
>       at java.net.URLClassLoader.defineClass(URLClassLoader.java:248)
>       at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
>       at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>       at java.lang.ClassLoader.loadClass(ClassLoader.java:297)
>       at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)
>       at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
>       at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)
>       at org.apache.xalan.xsltc.compiler.XSLTC.<init>(XSLTC.java:138)
>       at
> com.koberg.makecontent.InitMasterApp.newTransformer(InitMasterApp.java:60)
>       at com.koberg.makecontent.InitMasterApp.init(InitMasterApp.java:43)
>       at javax.servlet.GenericServlet.init(GenericServlet.java:82)
>       at
> com.caucho.server.http.Application.createServlet(Application.java:2212)
>       at
> com.caucho.server.http.Application.loadServlet(Application.java:2169)
>       at
> com.caucho.server.http.Application.initServlets(Application.java:1404)
>       at com.caucho.server.http.Application.init(Application.java:1359)
>       at com.caucho.server.http.VirtualHost.init(VirtualHost.java:456)
>       at
> com.caucho.server.http.ServletServer.initHosts(ServletServer.java:480)
>       at com.caucho.server.http.ServletServer.init(ServletServer.java:386)
>       at
> com.caucho.server.http.ServletServer.<init>(ServletServer.java:214)
>       at com.caucho.server.http.ResinServer.init(ResinServer.java:279)
>       at com.caucho.server.http.ResinServer.main(ResinServer.java:852)
>       at com.caucho.server.http.HttpServer.main(HttpServer.java:93)
> ----------------------------------------
> ========= ERROR 2 ===========
> java.lang.NoClassDefFoundError:
> de/fub/bytecode/generic/InstructionConstants
>       at java.lang.ClassLoader.defineClass0(Native Method)
>       at java.lang.ClassLoader.defineClass(ClassLoader.java:486)
>       at
> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:111)
>       at java.net.URLClassLoader.defineClass(URLClassLoader.java:248)
>       at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
>       at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>       at java.lang.ClassLoader.loadClass(ClassLoader.java:297)
>       at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)
>       at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
>       at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)
>       at java.lang.ClassLoader.defineClass0(Native Method)
>       at java.lang.ClassLoader.defineClass(ClassLoader.java:486)
>       at
> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:111)
>       at java.net.URLClassLoader.defineClass(URLClassLoader.java:248)
>       at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
>       at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>       at java.lang.ClassLoader.loadClass(ClassLoader.java:297)
>       at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)
>       at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
>       at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)
>       at org.apache.xalan.xsltc.compiler.XSLTC.<init>(XSLTC.java:138)
>       at
> org.apache.xalan.xsltc.runtime.TransletTemplates.newTransformer(Tr
ansletTemp
> lates.java:92)
>       at
> com.koberg.makecontent.MCTransformer.doTransform(MCTransformer.java:29)
>       at com.koberg.makecontent.MasterLogin.doPost(MasterLogin.java:58)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:165)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:103)
>       at
> com.caucho.server.http.FilterChainServlet.doFilter(FilterChainServ
let.java:8
> 2)
>       at com.caucho.server.http.Invocation.service(Invocation.java:272)
>       at
> com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:128)
>       at
> com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:216)
>       at
> com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:158)
>       at com.caucho.server.TcpConnection.run(TcpConnection.java:140)
>       at java.lang.Thread.run(Thread.java:484)
>

Reply via email to