Hi ESB team,

I have a simple proxy service with a clone mediator and within that, I call
three different endpoints where each endpoint returns an XML body [1]. I
would like to aggregate those three XML bodies into one message using
the aggregate mediator.

But in my config, I am getting the error message [2]. Can someone please
advise if something is missing in this config [3]? You can directly add [3]
into an ESB proxy and see the error message.

*[1] XML Message from the endpoint:-*

<soap:Envelope><soap:Header/><soap:Body><ser:getFullQuote><!--Optional:-->
<ser:request><!--Optional:-->
<xsd:symbol>USD</xsd:symbol></ser:request></ser:getFullQuote></soap:Body></soap:Envelope>


*[2] Error Message:-*

[2016-07-13 21:53:04,821] ERROR - SequenceMediator Expecting an
implementation of SOAP Envelope as the parent. But received some other
implementation
org.apache.axiom.soap.SOAPProcessingException: Expecting an implementation
of SOAP Envelope as the parent. But received some other implementation
at
org.apache.axiom.soap.impl.llom.SOAPHeaderImpl.checkParent(SOAPHeaderImpl.java:408)
at
org.apache.axiom.soap.impl.llom.SOAPElement.setParent(SOAPElement.java:81)
at
org.apache.axiom.om.impl.llom.OMElementImpl.addChild(OMElementImpl.java:296)
at
org.apache.axiom.om.impl.llom.OMElementImpl.addChild(OMElementImpl.java:212)
at
org.apache.axiom.soap.impl.llom.SOAPBodyImpl.addChild(SOAPBodyImpl.java:231)
at org.apache.synapse.mediators.eip.EIPUtils.addChildren(EIPUtils.java:171)
at
org.apache.synapse.mediators.eip.EIPUtils.enrichEnvelope(EIPUtils.java:135)
at
org.apache.synapse.mediators.eip.aggregator.AggregateMediator.getAggregatedMessage(AggregateMediator.java:498)
at
org.apache.synapse.mediators.eip.aggregator.AggregateMediator.completeAggregate(AggregateMediator.java:416)
at
org.apache.synapse.mediators.eip.aggregator.AggregateMediator.mediate(AggregateMediator.java:330)
at
org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:95)
at
org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:57)
at
org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:158)
at
org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:333)
at
org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:554)
at
org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:188)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
at
org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:255)
at
org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)



*[3] ESB  Proxy config:-*

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse";
       name="CloneProxy1"
       transports="http,https"
       statistics="disable"
       trace="disable"
       startOnLoad="true">
   <target>
      <inSequence>
         <property name="ROOT" scope="default">
            <root:rootelement xmlns:root="www.wso2esb.com"/>
         </property>
         <clone continueParent="true" id="1">
            <target>
               <sequence>
                  <log level="custom">
                     <property name="Message"
                               value="======================= message
1==============================="/>
                  </log>
                  <send>
                     <endpoint>
                        <address uri="
http://www.mocky.io/v2/5786694b0f0000740aa58487"/>
                     </endpoint>
                  </send>
               </sequence>
            </target>
            <target>
               <sequence>
                  <log level="custom">
                     <property name="m2"
                               value="=============================message
2============================="/>
                  </log>
                  <send>
                     <endpoint>
                        <address uri="
http://www.mocky.io/v2/578669550f0000740aa58488"/>
                     </endpoint>
                  </send>
               </sequence>
            </target>
            <target>
               <sequence>
                  <log level="custom">
                     <property name="Message"
                               value="======================= message
3==============================="/>
                  </log>
                  <send>
                     <endpoint>
                        <address uri="
http://www.mocky.io/v2/5786695f0f0000740aa58489"/>
                     </endpoint>
                  </send>
               </sequence>
            </target>
         </clone>
         <loopback/>
      </inSequence>
      <outSequence>
         <log level="custom">
            <property name="MESSAGE"

value="++++++++++++++++++Aggregate+++++++++++++++++++++++++++++++++++++"/>
         </log>
         <aggregate>
            <completeCondition>
               <messageCount min="3" max="3"/>
            </completeCondition>
            <onComplete xmlns:xsd="http://services.samples/xsd";
                        xmlns:ser="http://services.samples";
                        xmlns:soap="http://www.w3.org/2003/05/soap-envelope";
                        expression="/*">
               <respond/>
            </onComplete>
         </aggregate>
      </outSequence>
      <faultSequence/>
   </target>
   <description/>
</proxy>


Cheers,
Pubudu D.P
Senior Software Engineer - QA Team | WSO2 inc.
Mobile : +94775464547

Linkedin: https://uk.linkedin.com/in/pubududp
Medium: https://medium.com/@pubududp
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to