Morris Kwan wrote:

It is likely that you are using the old Xalan release packaged in JDK 1.4.
Please read this FAQ (http://xml.apache.org/xalan-j/faq.html#faq-N100CB) on
how to use Xalan with JDK 1.4.

Thanks! Unfortunaly the problem didn't disappear, even though the error message changed..

This is strange because the method org.apache.xalan.lib.ExsltMath.abs exists. Adding Xalan jars to classpath doesn't help.

Here is what happens:

[EMAIL PROTECTED] ~/xslt-test]$ cat XalanProblem.java
import org.w3c.dom.*;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.sax.*;
import javax.xml.transform.stream.*;
import javax.xml.transform.dom.*;
import org.xml.sax.*;
import java.io.*;

public class XalanProblem {

   public static void main(String a[]) {
       try {

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
Document xml = dbf.newDocumentBuilder().parse(new FileInputStream("xml.xml"));
Document xslt = dbf.newDocumentBuilder().parse(new FileInputStream("xslt.xml"));


TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer(new DOMSource(xslt));
transformer.transform(new DOMSource(xml), new StreamResult(System.out));
} catch (Exception e) {
e.printStackTrace();
}
}
}


[EMAIL PROTECTED] ~/xslt-test]$ cat xslt.xml
<?xml version="1.0"?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; xmlns:math="http://exslt.org/math"; version="1.0">

 <xsl:template match="/" >
   <xsl:value-of select="math:abs(2)" />
 </xsl:template>

</xsl:stylesheet>

[EMAIL PROTECTED] ~/xslt-test]$ java -Xbootclasspath/p:/home/medar/tomcat/common/lib/xalan.jar:/home/medar/tomcat/common/lib/xml-apis.jar:/home/medar/tomcat/common/lib/xercesImpl.jar -Djavax.xml.transform.TransformerFactory=org.apache.xalan.processor.TransformerFactoryImpl XalanProblem javax.xml.transform.TransformerException: java.lang.NoSuchMethodException: For extension function, could not find method org.apache.xalan.lib.ExsltMath.abs([ExpressionContext,] #NUMBER).
Checked both static and instance methods.
at org.apache.xalan.extensions.ExtensionHandlerJavaClass.callFunction(ExtensionHandlerJavaClass.java:357)
at org.apache.xalan.extensions.ExtensionsTable.extFunction(ExtensionsTable.java:227)
at org.apache.xalan.transformer.TransformerImpl.extFunction(TransformerImpl.java:460)
at org.apache.xpath.functions.FuncExtFunction.execute(FuncExtFunction.java:196)
at org.apache.xpath.Expression.executeCharsToContentHandler(Expression.java:357)
at org.apache.xalan.templates.ElemValueOf.execute(ElemValueOf.java:319)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2324)
at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2147)
at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1203)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:665)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1119)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1097)
at XalanProblem.main(XalanProblem.java:22)
Caused by: java.lang.NoSuchMethodException: For extension function, could not find method org.apache.xalan.lib.ExsltMath.abs([ExpressionContext,] #NUMBER).
Checked both static and instance methods.
at org.apache.xalan.extensions.MethodResolver.getMethod(MethodResolver.java:316)
at org.apache.xalan.extensions.ExtensionHandlerJavaClass.callFunction(ExtensionHandlerJavaClass.java:320)
... 12 more
---------
java.lang.NoSuchMethodException: For extension function, could not find method org.apache.xalan.lib.ExsltMath.abs([ExpressionContext,] #NUMBER).
Checked both static and instance methods.
at org.apache.xalan.extensions.MethodResolver.getMethod(MethodResolver.java:316)
at org.apache.xalan.extensions.ExtensionHandlerJavaClass.callFunction(ExtensionHandlerJavaClass.java:320)
at org.apache.xalan.extensions.ExtensionsTable.extFunction(ExtensionsTable.java:227)
at org.apache.xalan.transformer.TransformerImpl.extFunction(TransformerImpl.java:460)
at org.apache.xpath.functions.FuncExtFunction.execute(FuncExtFunction.java:196)
at org.apache.xpath.Expression.executeCharsToContentHandler(Expression.java:357)
at org.apache.xalan.templates.ElemValueOf.execute(ElemValueOf.java:319)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2324)
at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2147)
at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1203)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:665)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1119)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1097)
at XalanProblem.main(XalanProblem.java:22)
[EMAIL PROTECTED] ~/xslt-test]$




Reply via email to