camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Claus Ibsen <>
Subject Re: camel xslt 2.0 support
Date Fri, 22 Jun 2012 09:09:26 GMT

There is a camel-saxon feature you can install, if using Camel and xslt.

And I think you can see a JVM system property to tell it which xslt
factory to use.
So maybe that can enforce the saxon on a JVM wide level.

On Thu, Jun 21, 2012 at 7:45 PM, weather99 <> wrote:
> Despite installing servicemix-saxon, and following the instructions on this
> and other threads, I still cannot get xslt 2.0 to work in Servicemix 4.4.1
> or 4.4.2.  The converted message shows up with only the prolog <?xml
> version="1.0" encoding="UTF-8"?>, which indicates an xslt 1.0 conversion was
> done.
> I'm using this as part of my route:
> <camel:to
> uri="xslt:file:xsl/my.xsl?transformerFactoryClass=net.sf.saxon.TransformerFactoryImpl"
> />
> I have also tried this same thing via. a bean, with the same result:
> <to uri="xslt:file:xsl/my.xsl?transformerFactory=tFactory" /> <bean
> id="tFactory" class="net.sf.saxon.TransformerFactoryImpl" />
> In order to troubleshoot further, I embedded the entire xslt transformation
> inside a bean, using the saxon9he jar file.  It worked in standalone Camel.
> To make sure I had no external dependencies for the conversion, I built it
> with the extracted classes from the saxon jar.  When I tried to run it in
> Servicemix, i got this result:
> Line #1; Column #473; "xpath-default-namespace" attribute is not allowed on
> the xsl:stylesheet element!
> SystemId Unknown; Line #55; Column #86; Could not find function: upper-case
> This also indicates that only an xslt 1.0 conversion was attempted, since
> the processor doesn't know what to do with these tags.  This is the bean I
> was using:  <bean ref="xslt20" method="map" />
> It appears that in Servicemix, the xalan jar in ./lib/endorsed overrides all
> xslt processing no matter what.  I tried removing the xalan-2.7.1.jar from
> that directory.  My route wouldn't start, and I got this message:
> org.springframework.beans.factory.BeanCreationException: Error creating bean
> with name 'xslt20' defined in URL
> [bundle://187.0:0/META-INF/spring/beans-0.0.0.xml]: Instantiation of bean
> failed; nested exception is
> javax.xml.transform.TransformerFactoryConfigurationError: Provider
> *org.apache.xalan.processor*.TransformerFactoryImpl not found
> So it seems that it's always looking for xalan no matter what, which is only
> an xslt 1.0 processor.
> Please advise as to what I'm doing wrong.  We have a lot invested in xslt
> 2.0 in standalone Camel, and I'm now at a dead-stop trying to deploy it to
> Servicemix.
> Thanks.
> --
> View this message in context:
> Sent from the Camel - Users mailing list archive at

Claus Ibsen
Twitter: davsclaus, fusenews
Author of Camel in Action:

View raw message