[xsl] getting "could not create extension" with xalan

Subject: [xsl] getting "could not create extension" with xalan
From: Viresh Jain <vireshkj@xxxxxxxxx>
Date: Tue, 19 Jul 2005 12:17:01 -0500
I am trying to use example provided on
http://xml.apache.org/xalan-j/extensions.html (modified it to
simplify).  The code is attached:

<?xml version="1.0"?>
<!--Namespaces are global if you set them in the stylesheet element-->
<xsl:stylesheet
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
    version="1.0"
    xmlns:xalan="http://xml.apache.org/xalan";
    xmlns:my-ext="ext1"
    extension-element-prefixes="my-ext">

  <!--The component and its script are in the xalan namespace and define the
    implementation of the extension.-->
  <xalan:component prefix="my-ext" elements="timelapse" functions="getdate">
    <xalan:script lang="javascript">
      var multiplier=1;
      // The methods or functions that implement extension elements
always take 2
      // arguments. The first argument is the XSL Processor context; the
second
      // argument is the element node.
      function timelapse(xslProcessorContext, elem)
      {
        multiplier=parseInt(elem.getAttribute("multiplier"));
        // The element return value is placed in the result tree.
        // If you do not want a return value, return null.
        return null;
      }
      function getdate()
      {
      	return "TEST";
      }
    </xalan:script>
  </xalan:component>

  <xsl:template match="/">
    <p>We have logged your enquiry and will
      respond by <xsl:value-of select="my-ext:getdate()"/>.</p>
  </xsl:template>

</xsl:stylesheet>


When i try to use commandline to do transformation:
java -classpath
c:\work\lib\bsf.jar;c:\work\lib\js.jar;c:\work\lib\xalan.jar
org.apache.xalan.xslt.Process -IN testData.xml -XSL testXSL.xsl -OUT
testout.xml

I am getting following error:
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.
java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at
org.apache.xalan.extensions.ExtensionHandlerGeneral.callFunction(ExtensionHan
dlerGeneral.java:361)
        at
org.apache.xalan.extensions.ExtensionsTable.extFunction(ExtensionsTable.java:
227)
        at
org.apache.xalan.transformer.TransformerImpl.extFunction(TransformerImpl.java
:461)
        at
org.apache.xpath.functions.FuncExtFunction.execute(FuncExtFunction.java:233)
        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(Transforme
rImpl.java:2339)
        at
org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:7
10)
        at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Transforme
rImpl.java:2339)
        at
org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerI
mpl.java:2160)
        at
org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.ja
va:1213)
        at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:6
68)
        at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1
129)
        at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1
107)
        at org.apache.xalan.xslt.Process.main(Process.java:1041)
Caused by: com.ibm.bsf.BSFException: JavaScript Error: Internal Error:
java.lang.IllegalArgumentException
        at
com.ibm.bsf.engines.javascript.JavaScriptEngine.handleError(JavaScriptEngine.
java:182)
        at
com.ibm.bsf.engines.javascript.JavaScriptEngine.call(JavaScriptEngine.java:12
2)
        ... 19 more

(Location of error unknown)XSLT Error
(javax.xml.transform.TransformerException): Could not create
extension: getdate because of:
java.lang.reflect.InvocationTargetException


Had anyone on this list encountered this error?

Current Thread