Hi,

I am getting below exceptions while executing the javascript/Java method from 
xslt using xalan.
I included  bfs 2.4.jar,js 1.7.jar,xalan 2.7.jar in my class path. Please help 
in calling the javascript/java method from xslt and resolve these exceptions

Debug Exceptions

Run time Exceptions

Caused by: javax.xml.transform.TransformerException: Could not initialize BSF 
Manager
       at 
org.apache.xalan.extensions.ExtensionHandlerGeneral.<init>(ExtensionHandlerGeneral.java:216)
       ... 21 more
---------
java.lang.reflect.InvocationTargetException
       at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
       at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
       at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown 
Source)
       at java.lang.reflect.Constructor.newInstance(Unknown Source)
       at 
org.apache.xalan.extensions.ExtensionNamespaceSupport.launch(ExtensionNamespaceSupport.java:95)
       at 
org.apache.xalan.extensions.ExtensionsTable.<init>(ExtensionsTable.java:66)
       at 
org.apache.xalan.transformer.TransformerImpl.setExtensionsTable(TransformerImpl.java:441)
       at 
org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1312)
       at 
org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java:3447)
       at 
org.apache.xalan.transformer.TransformerHandlerImpl.endDocument(TransformerHandlerImpl.java:408)
       at 
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endDocument(Unknown
 Source)
       at 
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
 Source)
       at 
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown 
Source)
       at 
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown 
Source)
       at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown 
Source)
       at 
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown 
Source)
       at 
com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown
 Source)
       at 
org.eclipse.wst.xsl.jaxp.debug.invoker.internal.JAXPSAXProcessorInvoker.transform(JAXPSAXProcessorInvoker.java:220)
       at 
org.eclipse.wst.xsl.jaxp.debug.invoker.internal.JAXPSAXProcessorInvoker.transform(JAXPSAXProcessorInvoker.java:186)
       at 
org.eclipse.wst.xsl.jaxp.debug.debugger.AbstractDebugger.run(AbstractDebugger.java:111)
       at java.lang.Thread.run(Unknown Source)
Caused by: javax.xml.transform.TransformerException: Could not initialize BSF 
Manager
       at 
org.apache.xalan.extensions.ExtensionHandlerGeneral.<init>(ExtensionHandlerGeneral.java:216)
       ... 21 more
file:/C:/Users/syarabat/workspace/XSLExampleProject/files/JC_Test.xsl; Line 
#31; Column #42; java.lang.NullPointerException



20:37:25,465 ERROR [main] JAXPSAXProcessorInvoker  - The first argument to the 
non-static Java function 'getdate' is not a valid object reference.
20:37:25,470 ERROR [main] JAXPSAXProcessorInvoker  - Could not compile 
stylesheet
javax.xml.transform.TransformerConfigurationException: Could not compile 
stylesheet
       at 
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTemplates(Unknown
 Source)
       at 
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTransformer(Unknown
 Source)
       at 
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTransformerHandler(Unknown
 Source)
       at 
org.eclipse.wst.xsl.jaxp.debug.invoker.internal.JAXPSAXProcessorInvoker.addStylesheet(JAXPSAXProcessorInvoker.java:136)
       at 
org.eclipse.wst.xsl.jaxp.debug.invoker.internal.JAXPSAXProcessorInvoker.addStylesheet(JAXPSAXProcessorInvoker.java:127)
       at 
org.eclipse.wst.xsl.jaxp.debug.invoker.PipelineDefinition.addStyleSheet(PipelineDefinition.java:161)
       at 
org.eclipse.wst.xsl.jaxp.debug.invoker.PipelineDefinition.configure(PipelineDefinition.java:152)
       at 
org.eclipse.wst.xsl.jaxp.debug.invoker.internal.Main.main(Main.java:72)
20:37:25,477 FATAL [main] Main  - Error with stylesheet: 
file:/C:/Users/syarabat/workspace/XSLExampleProject/files/JC_Test.xsl
org.eclipse.wst.xsl.jaxp.debug.invoker.internal.ConfigurationException: Error 
with stylesheet: 
file:/C:/Users/syarabat/workspace/XSLExampleProject/files/JC_Test.xsl
       at 
org.eclipse.wst.xsl.jaxp.debug.invoker.PipelineDefinition.addStyleSheet(PipelineDefinition.java:163)
       at 
org.eclipse.wst.xsl.jaxp.debug.invoker.PipelineDefinition.configure(PipelineDefinition.java:152)
       at 
org.eclipse.wst.xsl.jaxp.debug.invoker.internal.Main.main(Main.java:72)


XSLT script:
XSL Script:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
xmlns:xalan="http://xml.apache.org/xalan";
xmlns:my-ext="ext1"
extension-element-prefixes="my-ext">
<xalan:component prefix="my-ext" elements="timelapse" functions="getdate">
<xalan:script lang="javascript">
var multiplier=1;
System.setProperty("org.apache.xalan.extensions.bsf.BSFManager","org.apache.bsf.BSFManager");
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(numdays)
{ var d = new Date(); var totalDays = parseInt(numdays) * multiplier; 
d.setDate(d.getDate() + totalDays); return d.toLocaleString(); }
</xalan:script>
</xalan:component>
<xsl:template match="deadline">
<p><my-ext:timelapse multiplier="2"/>We have logged your enquiry and will
respond by <xsl:value-of select="my-ext:getdate(string(@numdays))"/>.</p>
</xsl:template>
</xsl:stylesheet>
XMl script
<?xml version="1.0" encoding="UTF-8"?>
<deadline>
<numdays>3</numdays>
</deadline>


Thanks
Sravya

Reply via email to