You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@xalan.apache.org by Sergey Kurepin <sd...@mail.ru> on 2001/05/04 02:10:37 UTC

Xalan-JavaScript extensions - unable to load language?

Hello All,

I tried to make use of lxslt:component and lxslt:script from attached
examples (xalan-j/extensions.html - last example),  but got error
message:

Xalan-j 1.2.2:
----------------------------------------------------------------
========= Parsing file:D:/xsl/doc.xsl ==========
Parse of file:D:/xsl/doc.xsl took 621 milliseconds
========= Parsing file:D:/xsl/doc.xml ==========
Parse of file:D:/xsl/doc.xml took 80 milliseconds
=============================
Transforming...
Call to extension element failed: unable to load language: javascript
Call to extension function failed: unable to load language: javascript

...

Call to extension function failed: unable to load language: javascript
Call to extension element failed: unable to load language: javascript
transform took 380 milliseconds
XSLProcessor: done

-------------------------------------------------------------------------------

Xalan-j 2.0.1:
----------------------------------------------------------------
java.lang.reflect.InvocationTargetException: com.ibm.bsf.BSFException:
unable to load language: javascript
        at
com.ibm.bsf.BSFManager.loadScriptingEngine(BSFManager.java:324)
        at java.lang.reflect.Method.invoke(Native Method)
        at
org.apache.xalan.extensions.ExtensionHandlerGeneral.<init>(ExtensionHandlerGeneral.java:230)
        at
org.apache.xalan.templates.ElemExtensionDecl.runtimeInit(ElemExtensionDecl.java:329)
        at
org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1212)
        at
org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java:2942)
        at java.lang.Thread.run(Thread.java:484)

XSLT Error (javax.xml.transform.TransformerException): Could not compile
extension
-------------------------------------------------------------------------------

Why???
In both cases CLASSPATH had bsf.jar; xalan.jar; xerces.jar of the
appropriate version.
In early versions of Xalan it(extensions) worked.

Thanks in advance for any help you can provide!

Re: Xalan-JavaScript extensions - unable to load language?

Posted by Sergey Kurepin <sd...@mail.ru>.
Of course,

Thank you very much Gary.


Gary L Peskin wrote:
> 
> Hi Sergey --
> 
> Please make sure that you have the correct version (1.5) of js.jar
> (downloadable from http://www.mozilla.org/rhino) in your classpath.
> This is a different version of js.jar than was used in earlier releases
> of XalanJ.  However, this is the version that is required for the
> version of bsf.jar packaged with later XalanJ releases.
> 
> See http://xml.apache.org/xalan-j/extensions.html#supported-lang
> 
> HTH,
> Gary


Re: Xalan-JavaScript extensions - unable to load language?

Posted by Gary L Peskin <ga...@firstech.com>.
Hi Sergey --

Please make sure that you have the correct version (1.5) of js.jar
(downloadable from http://www.mozilla.org/rhino) in your classpath. 
This is a different version of js.jar than was used in earlier releases
of XalanJ.  However, this is the version that is required for the
version of bsf.jar packaged with later XalanJ releases.

See http://xml.apache.org/xalan-j/extensions.html#supported-lang

HTH,
Gary

Sergey Kurepin wrote:
> 
> Hello All,
> 
> I tried to make use of lxslt:component and lxslt:script from attached
> examples (xalan-j/extensions.html - last example),  but got error
> message:
> 
> Xalan-j 1.2.2:
> ----------------------------------------------------------------
> ========= Parsing file:D:/xsl/doc.xsl ==========
> Parse of file:D:/xsl/doc.xsl took 621 milliseconds
> ========= Parsing file:D:/xsl/doc.xml ==========
> Parse of file:D:/xsl/doc.xml took 80 milliseconds
> =============================
> Transforming...
> Call to extension element failed: unable to load language: javascript
> Call to extension function failed: unable to load language: javascript
> 
> ...
> 
> Call to extension function failed: unable to load language: javascript
> Call to extension element failed: unable to load language: javascript
> transform took 380 milliseconds
> XSLProcessor: done
> 
> -------------------------------------------------------------------------------
> 
> Xalan-j 2.0.1:
> ----------------------------------------------------------------
> java.lang.reflect.InvocationTargetException: com.ibm.bsf.BSFException:
> unable to load language: javascript
>         at
> com.ibm.bsf.BSFManager.loadScriptingEngine(BSFManager.java:324)
>         at java.lang.reflect.Method.invoke(Native Method)
>         at
> org.apache.xalan.extensions.ExtensionHandlerGeneral.<init>(ExtensionHandlerGeneral.java:230)
>         at
> org.apache.xalan.templates.ElemExtensionDecl.runtimeInit(ElemExtensionDecl.java:329)
>         at
> org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1212)
>         at
> org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java:2942)
>         at java.lang.Thread.run(Thread.java:484)
> 
> XSLT Error (javax.xml.transform.TransformerException): Could not compile
> extension
> -------------------------------------------------------------------------------
> 
> Why???
> In both cases CLASSPATH had bsf.jar; xalan.jar; xerces.jar of the
> appropriate version.
> In early versions of Xalan it(extensions) worked.
> 
> Thanks in advance for any help you can provide!
> 
>   ------------------------------------------------------------------------
> <?xml version="1.0"?>
> <doc>
>         <name first="David" last="Marston"/>
>         <name first="David" last="Bertoni"/>
>         <name first="Donald" last="Leslie"/>
>         <name first="Emily" last="Farmer"/>
>         <name first="Jack" last="Donohue"/>
>         <name first="Myriam" last="Midy"/>
>         <name first="Paul" last="Dick"/>
>         <name first="Robert" last="Weir"/>
>         <name first="Scott" last="Boag"/>
>         <name first="Shane" last="Curcuru"/>
> </doc>
> 
>   ------------------------------------------------------------------------
> <?xml version="1.0"?>
> <xsl:stylesheet
>         xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>         xmlns:lxslt="http://xml.apache.org/xslt"
>         xmlns:counter="MyCounter"
>         extension-element-prefixes="counter"
>         version="1.0"
>         >
> 
> <lxslt:component prefix="counter" elements="init incr" functions="read">
>         <lxslt:script lang="javascript">
>                 var counters = new Array();
> 
>       function init (xslproc, elem) {
>         name = elem.getAttribute ("name");
>         value = parseInt(elem.getAttribute ("value"));
>         counters[name] = value;
>         return null;
>       }
> 
>       function read (name) {
>         // Return a string.
>         return "" + (counters[name]);
>       }
> 
>       function incr (xslproc, elem)
>       {
>         name = elem.getAttribute ("name");
>         counters[name]++;
>         return null;
>       }
>     </lxslt:script>
>         </lxslt:component>
>         <xsl:template match="/">
>                 <HTML>
>                         <H1>Names in alphatebical order</H1>
>                         <counter:init name="index" value="1"/>
>                         <xsl:for-each select="doc/name">
>                                 <xsl:sort select="@last"/>
>                                 <xsl:sort select="@first"/>
>                                 <p>
>                                         <xsl:text>[</xsl:text>
>                                         <xsl:value-of select="counter:read('index')"/>
>                                         <xsl:text>]. </xsl:text>
>                                         <xsl:value-of select="@last"/>
>                                         <xsl:text>, </xsl:text>
>                                         <xsl:value-of select="@first"/>
>                                 </p>
>                                 <counter:incr name="index"/>
>                         </xsl:for-each>
>                 </HTML>
>         </xsl:template>
> </xsl:stylesheet>