AW: SilverStream delays 2003-09-15 - By Stefan.Kaesberg@(protected)
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:TEastmond@(protected)] Gesendet: Mi 10.09.2003 06:46 An: xalan-j-users@(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
|
|