Subject: 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?
|