Hi Tom,
I use SilverStream 3.73 and Xalan and it works well.
You should check, whether you'll get the Xalan-Transformer-Factory or another
by printing the full qualified classname with:
System.out.println(tFactory.getClass().getName());
I guess it depends on Properties, wich Transformerfactory-Implementation you
get. If you don't get Xalans TF-Implementation, you may swap some libaries in
the AGClasspath or change Properties. You can force the VM to take the right
TF-Impl by using Class-ForName.
Another point maybe that the Server gets confused by setting the content-type
of the outputstream. If the Stylesheet sets the content-type (via xsl:method)
and the encoding it's not set twice if you omit
res.setContentType("text/html; charset=UTF-8");
Hope that helps. Stefan
BTW. Why do you use // instead of / for URLs ?
-----Ursprüngliche Nachricht-----
Von: Tom Eastmond [mailto:[EMAIL PROTECTED]
Gesendet: Mi 10.09.2003 06:46
An: [EMAIL PROTECTED]
Cc:
Betreff: SilverStream delays
I am testing SimpleXSLTServlet on a SilverStream 3.75 application
server. The first time the servlet is run it takes nearly 18 minutes (not
seconds). After the first run, execution times are less then half a second. I
don’t see this delay running the same servlet in Tomcat 4.1. Below I’ve
included the code I’m using – does anyone know why this could be taking so long?
TIA,
Tom
long start = System.currentTimeMillis();
// The servlet returns HTML.
res.setContentType("text/html; charset=UTF-8");
// Output goes in the response stream.
PrintWriter out = res.getWriter();
try
{
TransformerFactory tFactory =
TransformerFactory.newInstance();
// Get the XML input document and the
stylesheet.
Source xmlSource = new StreamSource(new
URL("file", "", "..//Resources//StyleSheets//birds.xml").openStream());
Source xslSource = new StreamSource(new
URL("file", "", "..//Resources//StyleSheets//birds.xsl").openStream());
// Generate the transformer.
Transformer transformer =
tFactory.newTransformer(xslSource);
// Perform the transformation, sending the
output to the response.
transformer.transform(xmlSource, new
StreamResult(out));
}
catch (Exception e)
{
out.write(e.getMessage());
e.printStackTrace(out);
}
out.close();
System.out.println("Time elapsed: " +
(System.currentTimeMillis() - start)); //typical output on first run - 1118617
return;
//afterwards - 400-500