PDA

View Full Version : Java extension using Spring Integration?



speedtrial
Oct 21st, 2009, 06:40 AM
[Avatar]
2009-10-21 11:13:37 UTC

Saxon works fine as XSLT and XPath engine inside Spring Integration 1.0.3. But I can not include Java extensions sucessfully. The extensions

<xsl:value-of select="double:MAX_VALUE()" xmlns:double="java:java.lang.Double"/>

<xsl:value-of select="math:sqrt($arg)" xmlns:math="java:java.lang.Math"/>

work fine inside XMLSpy. But these error messages are shown using Spring Integration/Saxon EE

Error at xsl:value-of on line 31 column 84 XPST0017: XPath syntax error at char 18 on line 31 in {double:MAXVALUE()}: Cannot find a matching 0-argument function named {java:java.lang.Double}MAX VALUE()

Error at xsl:value-of on line 32 column 77 XPST0017: XPath syntax error at char 15 on line 32 in {math:sqrt($arg)}: Cannot find a matching 1-argument function named {java:java.lang.Math}sqrt()

The enviroment is:

javax.xml.transform.TransformerFactory=net.sf.saxo n.TransformerFactoryImpl javax.xml.xpath.XPathFactory=net.sf.saxon.xpath.XP athFactoryImpl javax.xml.parsers.DocumentBuilderFactory=org.apach e.xerces.jaxp.DocumentBuilderFactoryImpl org.w3c.dom.DOMImplementationSourceList=org.apache .xerces.dom.DOMImplementationS ourceImpl

The spring integration object is

<spi-xml:xslt-transformer id="testtrans" xsl-resource="testtrans.xslt"/>

What am I doing wrong?

speedtrial
Oct 22nd, 2009, 03:35 AM
I reverted back from saxon ee to saxon sa and now it works. Futher testing with saxon ee will go on.

speedtrial
Oct 22nd, 2009, 07:47 AM
The class com.saxonica.config.EnterpriseTransformerFactory has to be used instead of net.sf.saxon.TransformerFactoryImp to active the enterprise features like Java extensions on saxon ee.