Bonjour,
En suivant ces recommandations : http://xml.apache.org/xalan-j/xsltc_usage.html, j'ai testé les gains de performances qu'offre le processeur XSLTC de Xalan par rapport à celui de base dans Java.
Sous TomCat, ces tests ont fonctionné parfaitement, mais le passage sous JBoss se fait dans la douleur!
J'obtiens systématiquement l'erreur suivante :
ERROR [STDERR] ERREUR : 'PKG_PATH'
ERROR [STDERR] ERREUR BLOQUANTE : 'Impossible de compiler la feuille de style'
ERROR [STDERR] javax.xml.transform.TransformerConfigurationException: Impossible de compiler la feuille de style
ERROR [STDERR] at org.apache.xalan.xsltc.trax.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:832)
ERROR [STDERR] at quelle.pictime.test.XsltCompiled.doPost(XsltCompiled.java:78)
ERROR [STDERR] at quelle.pictime.test.XsltCompiled.doGet(XsltCompiled.java:39)
ERROR [STDERR] at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
ERROR [STDERR] at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
[...]
Mon code est le suivant :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String key = "javax.xml.transform.TransformerFactory";
String value = "org.apache.xalan.xsltc.trax.TransformerFactoryImpl";
Properties props = System.getProperties();
props.put(key, value);
System.setProperties(props);
ServletContext context = getServletContext();
String xslInURI = context.getRealPath("/XSL/liste.xsl") ;
String xmlInURI = context.getRealPath("/XML/liste.xml");
// Instantiate the TransformerFactory, and use it with a StreamSource
// XSL stylesheet to create a translet as a Templates object.
TransformerFactory tFactory = TransformerFactory.newInstance();
Templates translet = null;
try {translet = tFactory.newTemplates(new StreamSource(xslInURI));}
catch (TransformerConfigurationException e) {e.printStackTrace();}
// For each thread, instantiate a new Transformer, and perform the
// transformations on that thread from a StreamSource to a StreamResult;
long begin = System.currentTimeMillis() ;
Transformer transformer = null;
try {transformer = translet.newTransformer();}
catch (TransformerConfigurationException e) {e.printStackTrace();}
PrintWriter printwriter = response.getWriter();
try {transformer.transform(new StreamSource(xmlInURI), new StreamResult(printwriter));}
catch (TransformerException e) {e.printStackTrace();}
printwriter.close();
long end = System.currentTimeMillis() ;
System.out.println( end - begin) ;
} |
Quelqu'un a-t-il déjà rencontré cette erreur? Avez-vous une idée de comment la résoudre?
Merci d'avance
Partager