It certainly seems like a classpath problem in my case as well, but BSF is available, and seems to be installed correctly. Yet I haven't been able to figure out where its trying to load it from and why. Paths are further
complicated by running under Tomcat I know.

Normally we put Xalan-J.jar, bsf.jar, js.jar into tomcat5/common/endorsed/ and it pulls them from the correct place. Doing so with Xalan 2.7 it does not seem to find them there. I've also made sure that valid versions were installed in the /usr/share/java (their default location) and in /etc/alternatives/jre/lib/endorsed, to no avail.

I cannot provide a full example obviously, but here's a rough breakdown of how we invoke things, if that helps. In our case we need to work both in an MSXSL environment as well as a Xalan-J environment, which makes it a little
more complicated - at least at the xslt level.

A stylesheet that wants to use the extension functions does this (I've pulled things from a couple of places here, hopefully its coherent.)

<!DOCTYPE xsl:stylesheet [<!ENTITY js_include SYSTEM "calendar_functions.js">]>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
   xmlns:msxsl="urn:schemas-microsoft-com:xslt"
   xmlns:xalan="http://xml.apache.org/xalan";
   xmlns:calendar="urn:calendarlib"
   xmlns:igxlib="urn:igxlibns"
   extension-element-prefixes="calendar igxlib msxsl xalan"
   exclude-result-prefixes="calendar igxlib msxsl xalan"
   version="1.0">

   <xsl:include href="include-scripts.xsl"/>

and then has its use of the extension functions, using syntax like this:

<xsl:value-of select="calendar:getTodaysYear()" />


The xsl pulling in the scripts, "include-scripts.xsl" then looks something like this:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE xsl:stylesheet [<!ENTITY js_include SYSTEM "extension_functions.js">]>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
   xmlns:msxsl="urn:schemas-microsoft-com:xslt"
   xmlns:xalan="http://xml.apache.org/xalan";
   xmlns:calendar="urn:calendarlib"
   xmlns:igxlib="urn:igxlibns"
   extension-element-prefixes="igxlib"
   version="1.0">

   <msxsl:script language="JavaScript" implements-prefix="igxlib">
       &js_include;
   </msxsl:script>

   <xalan:component prefix="igxlib" elements=""
functions="IsNewMonth GenerateMonth GenerateDay GenerateYear formatBaseURL RandomIndex RandomSequence IndexedItemFromList toLower UTCtoLocalTime fitSizeWidth replaceStr matchCatMultiMulti" >

       <xalan:script lang="javascript">
          &js_include;
       </xalan:script>
   </xalan:component>
</xsl:stylesheet>


Wade, John F. (MSFC-NAS902099)[TBE] wrote:
Classpath has been my thought, too. I'm a real beginner at this, and the environment I'm working with has two variants, so I'm not sure how to determine what the classpath is in each case. But, we'll start with the stylesheet and JAVA code on Monday and go from there. Thanks. JFW
------------------------------------------------------------------------
*From:* Kevin Cormier [mailto:[EMAIL PROTECTED]
*Sent:* Fri 4/27/2007 3:11 PM
*To:* Wade, John F. (MSFC-NAS902099)[TBE]
*Cc:* xalan-j-users@xml.apache.org
*Subject:* Re: Xalan extension functions

Hi John,

All I can think of with the information you've given is to check that your
class is on the classpath.

Could you send your stylesheet and Java class, and also show how you
invoked the transformation and what the full error message was?



Reply via email to