Hi all,
I discovered a problem when working with the xslt mediator. I put the following xslt file into the integrated registry of the wso2 esb.
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns="http://myhello" xmlns:fn="http://www.w3.org/2005/02/xpath-functions" version="2.0" exclude-result-prefixes="fn">
<xsl:output method="xml" omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/">
<xsl:apply-templates select="//ns:helloResponse"/>
</xsl:template>
<xsl:template match="ns:helloResponse">
<ns:helloResponse>
<ns:return>Original was: <xsl:value-of select="replace(//ns:return,'MYNAME','SOMEOTHERNAME')"/></ns:return>
</ns:helloResponse>
</xsl:template>
</xsl:stylesheet>
It is used within an XSLT Transformation Mediator which should take a web service's response and substitute a string in a field. Here is the soap message:
<?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><ns:helloResponse xmlns:ns="http://myhello"><ns:return>Hello MYNAME from >>>>p14984<<<<</ns:return></ns:helloResponse></soapenv:Body></soapenv:Envelope>
When not using the xpath replace() function, the transformation works fine. When using it, the esb reports an error:
ERROR XSLTMediator Error compiling the XSLT with key : XSLT/changecontent.xslt
X.X.X.X [HttpClientWorker-3] ERROR XSLTMediator Error creating XSLT transformer using : XSLT/changecontent.xslt
org.apache.synapse.SynapseException: Error compiling the XSLT with key : XSLT/changecontent.xslt
at org.apache.synapse.mediators.AbstractMediator.handleException(AbstractMediator.java:187)
at org.apache.synapse.mediators.transform.XSLTMediator.performXSLT(XSLTMediator.java:272)
at org.apache.synapse.mediators.transform.XSLTMediator.mediate(XSLTMediator.java:177)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:58)
at org.apache.synapse.mediators.filters.FilterMediator.mediate(FilterMediator.java:95)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:58)
at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:125)
at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:147)
at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:301)
at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:131)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:176)
at org.apache.synapse.transport.nhttp.ClientWorker.run(ClientWorker.java:200)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
X.X.X.X [HttpClientWorker-3] ERROR XSLTMediator Unable to perform XSLT transformation using : XSLT/changecontent.xslt against source XPath : source XPath : //ns:helloResponse
org.apache.synapse.SynapseException: Error creating XSLT transformer using : XSLT/changecontent.xslt
at org.apache.synapse.mediators.AbstractMediator.handleException(AbstractMediator.java:220)
at org.apache.synapse.mediators.transform.XSLTMediator.performXSLT(XSLTMediator.java:275)
at org.apache.synapse.mediators.transform.XSLTMediator.mediate(XSLTMediator.java:177)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:58)
at org.apache.synapse.mediators.filters.FilterMediator.mediate(FilterMediator.java:95)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:58)
at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:125)
at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:147)
at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:301)
at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:131)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:176)
at org.apache.synapse.transport.nhttp.ClientWorker.run(ClientWorker.java:200)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
Caused by: org.apache.synapse.SynapseException: Error compiling the XSLT with key : XSLT/changecontent.xslt
at org.apache.synapse.mediators.AbstractMediator.handleException(AbstractMediator.java:187)
at org.apache.synapse.mediators.transform.XSLTMediator.performXSLT(XSLTMediator.java:272)
... 13 more
Please help, regards Clemens
Please prefix the standard XSLT function using "fn"
problem still not solved...
Use following solutions
not resolved yet
What I did
Hi, this time I took a new,
Oh ... just edit wso2esb.sh
maybe escape sequence bug under linux?
problem solved!