0
votes

I am trying to call an XSLT transformation in the out sequence for an ESB service but I get an error....

I have a WSO2 Data Services Server which returns XML and I have successfully proxied that in the ESB. But when I add the Out sequence....

 <outSequence>
     <log level="full"/>
     <property name="messageType" value="text/xml" scope="axis2" type="STRING"/>
     <xslt key="out_transform2"/>
     <send/>
  </outSequence>

The XSLT is in a local service and has been tested separately in a .xsl file using PHP. I get...

15:14:43,508 [-] [PassThroughMessageProcessor-2] INFO To: http://www.w3.org/2005/08/addressing/anonymous, WSAction: , SOAPAction: , MessageID: urn:uuid:4e28dd11-6720-4f40-9714-6fa7ebd5630f, Direction: response, MESSAGE = Executing default 'fault' sequence, ERROR_CODE = 0, ERROR_MESSAGE = Unable to perform XSLT transformation using : Value {name ='null', keyValue ='out_transform2'} against source XPath : s11:Body/child::[position()=1] | s12:Body/child::[position()=1] reason : Error creating XSLT transformer using : Value {name ='null', keyValue ='out_transform2'}, Envelope:

<?xml version='1.0'
encoding='utf-8'?><soapenv:Envelope
xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"><soapenv:Body><users
xmlns="http://test.org"><users><user_id>1745</user_id><fname>john</fname>
<lname>smith</lname></users><users><user_id>7461</user_id><fname>Happy</fname>
...
<lname>claus</lname></users></users></soapenv:Body></soapenv:Envelope>

...in the Mediation Message tracer. My XSLT is an Inlined XML entry

<localEntry xmlns="http://ws.apache.org/ns/synapse" key="out_transform2">
      <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
      <xsl:output method="text" encoding="utf-8" indent="yes"/>
<!-- snipped content out here !-->    
      </xsl:stylesheet>
</localEntry>

Any ideas?

1

1 Answers

0
votes

You can see this error when WSO2 can't find or can't load your XSLT.

In your case, I can see the same string "out_transform2" used to name your local entry and to reference it in XSLT mediator configuration : it seems to be correct.

I guess that WSO2 can find, but can't load your XSL because there is a problem inside the local entry : you should edit the file out_transform2.xml on the file system with an XML editor and verify it.