You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-users@xalan.apache.org by Aleksi Kallio <al...@csc.fi> on 2003/08/22 09:09:32 UTC

EXSLT

I can't get the math:abs() or any other EXSLT function to rock. I'm 
hitting the java.lang.NoSuchMethodException every time.

The shell dump below should give all the details:

[medar@aurinia ~/temp]$ cat XalanProblem.java
import org.w3c.dom.*;
import javax.xml.transform.*;
import javax.xml.transform.sax.*;
import javax.xml.transform.stream.*;
import org.xml.sax.*;
import java.io.*;

public class XalanProblem {

    public static void main(String a[]) {
        try {
            TransformerFactory tFactory = TransformerFactory.newInstance();
            Transformer transformer = tFactory.newTransformer(new 
SAXSource(new InputSource(new FileInputStream("xslt.xml"))));
            transformer.transform(new SAXSource(new InputSource(new 
FileInputStream("xml.xml"))), new StreamResult(System.out));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

[medar@aurinia ~/temp]$ 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>

[medar@aurinia ~/temp]$ java -classpath 
.:/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 java.lang.Double.abs([ExpressionContext,] ).
        at 
org.apache.xalan.extensions.ExtensionHandlerJavaPackage.callFunction(ExtensionHandlerJavaPackage.java:395)
        at 
org.apache.xalan.extensions.ExtensionsTable.extFunction(ExtensionsTable.java:257)
        at 
org.apache.xpath.functions.FuncExtFunction.execute(FuncExtFunction.java:181)
        at 
org.apache.xpath.Expression.executeCharsToContentHandler(Expression.java:301)
        at 
org.apache.xalan.templates.ElemValueOf.execute(ElemValueOf.java:319)
        at 
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2182)
        at 
org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2008)
        at 
org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1171)
        at 
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:638)
        at 
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1088)
        at 
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1066)
        at XalanProblem.main(XalanProblem.java:14)
Caused by: java.lang.NoSuchMethodException: For extension function, 
could not find method java.lang.Double.abs([ExpressionContext,] ).
        at 
org.apache.xalan.extensions.MethodResolver.getMethod(MethodResolver.java:314)
        at 
org.apache.xalan.extensions.ExtensionHandlerJavaPackage.callFunction(ExtensionHandlerJavaPackage.java:374)
        ... 11 more
---------
java.lang.NoSuchMethodException: For extension function, could not find 
method java.lang.Double.abs([ExpressionContext,] ).
        at 
org.apache.xalan.extensions.MethodResolver.getMethod(MethodResolver.java:314)
        at 
org.apache.xalan.extensions.ExtensionHandlerJavaPackage.callFunction(ExtensionHandlerJavaPackage.java:374)
        at 
org.apache.xalan.extensions.ExtensionsTable.extFunction(ExtensionsTable.java:257)
        at 
org.apache.xpath.functions.FuncExtFunction.execute(FuncExtFunction.java:181)
        at 
org.apache.xpath.Expression.executeCharsToContentHandler(Expression.java:301)
        at 
org.apache.xalan.templates.ElemValueOf.execute(ElemValueOf.java:319)
        at 
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2182)
        at 
org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2008)
        at 
org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1171)
        at 
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:638)
        at 
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1088)
        at 
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1066)
        at XalanProblem.main(XalanProblem.java:14)

[medar@aurinia ~/temp]$ duh?