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