Which version of Xalan are you using? Your example works correctly for me
using Xalan 2.5.1. I think it is still a classpath configuration problem
with Tomcat. Please try to run the example outside of Tomcat. If it works
correctly, then it is a classpath configuration problem on your side. If it
still fails, please try to download a newer Xalan driver.

Morris Kwan
XSLT Development
IBM Toronto Lab
Tel: (905)413-3729
Email: [EMAIL PROTECTED]



                                                                                
                                                   
                      Aleksi Kallio                                             
                                                   
                      <[EMAIL PROTECTED]        To:       [EMAIL PROTECTED]     
                                         
                      c.fi>                    cc:                              
                                                   
                                               Subject:  Re: EXSLT              
                                                   
                      08/25/2003 05:23                                          
                                                   
                      AM                                                        
                                                   
                                                                                
                                                   
                                                                                
                                                   



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