camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From weather99 <fflei...@harris.com>
Subject Re: camel xslt 2.0 support
Date Thu, 21 Jun 2012 17:45:51 GMT
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: http://camel.465427.n5.nabble.com/camel-xslt-2-0-support-tp5646214p5714877.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Mime
View raw message