Simple XML XSLT Transformation with WSO2 - ESB

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Simple XML XSLT Transformation with WSO2 - ESB

Ulises Fasoli
Hi,
I'm new to WSO2 world, but here is a short description of what I'm
trying to accomplish

1) The proxy service recieves a request with an XML file like so :

<?xml version="1.0" encoding="UTF-8"?>
<root>
<user>myUser</user>
<password>myPassword</password>
</root>

2) The proxy service applies an XSLT tranformation to the file to adapt
it to the CRM's format like so :

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
           version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
            xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:fn="http://www.w3.org/2005/xpath-functions"
 >
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<crm-user>
<user>
<xsl:value-of select="root/user"/>
</user>
<password>
<xsl:value-of select="root/password"/>
</password>
</crm-user>
</xsl:template>
</xsl:stylesheet>


3) The service sends the transformed XML file to the CRM

4) The CRM sends back an XML response

<?xml version="1.0" encoding="UTF-8"?>
<crm-response>
<authentication>ok</authentication>
</crm-response>

5) The proxy web service sends the response back to the user


---


Here my Test Data:


Using the TryIt Service on the HTTPEndoint I'm sending this


<body>
<?xml version="1.0" encoding="UTF-8"?>
<root>
<user>myUser</user>
<password>myPassword</password>
</root>
</body>

Here is my proxy configuration

<proxy name="MyXSLTProxy" transports="http" startOnLoad="true"
trace="disable">
<target endpoint="LocalXML" inSequence="TransformSequence"/>
</proxy>

<sequence name="TransformSequence">
<in>
<xslt key="conf:/users/transform.xslt"/>
</in>
<send/>
<out/>
</sequence>


the LocalXML endoing is a simple XML file behind an apache server
emulating a CRM Response :

<?xml version="1.0" encoding="UTF-8"?>
<crm-response>
<authentication>ok</authentication>
</crm-response>



I keep getting the following error :


[2012-02-20 19:39:23,605] ERROR - Axis2Sender Unexpected error during
sending message out
org.apache.axis2.AxisFault: The system cannot infer the transport
information from the
/services/MyXSLTProxy.MyXSLTProxyHttpEndpoint/mediate URL.
  at
org.apache.axis2.description.ClientUtils.inferOutTransport(ClientUtils.java:81)
  at
org.apache.synapse.core.axis2.DynamicAxisOperation$DynamicOperationClient.executeImpl(DynamicAxisOperation.java:123)
  at
org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
  at
org.apache.synapse.core.axis2.Axis2FlexibleMEPClient.send(Axis2FlexibleMEPClient.java:441)
  at org.apache.synapse.core.axis2.Axis2Sender.sendOn(Axis2Sender.java:57)
  at
org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:271)
  at
org.apache.synapse.mediators.builtin.SendMediator.mediate(SendMediator.java:84)
  at
org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:60)
  at
org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:114)
  at
org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:144)
  at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:181)
  at
org.apache.axis2.transport.http.util.RESTUtil.invokeAxisEngine(RESTUtil.java:144)
  at
org.apache.axis2.transport.http.util.RESTUtil.processXMLRequest(RESTUtil.java:89)
  at
org.apache.synapse.transport.nhttp.util.RESTUtil.processPOSTRequest(RESTUtil.java:188)
  at
org.apache.synapse.transport.nhttp.ServerWorker.processEntityEnclosingMethod(ServerWorker.java:403)
  at
org.apache.synapse.transport.nhttp.ServerWorker.run(ServerWorker.java:259)
  at
org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:173)
  at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
  at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
  at java.lang.Thread.run(Thread.java:662)

Any ideas I'm not sure what I'm doing wrong?


Thanks in advance

Ulises



_______________________________________________
Esb-java-user mailing list
[hidden email]
https://mail.wso2.org/cgi-bin/mailman/listinfo/esb-java-user
Loading...