Hi Florin,
So, if I understand the requirement correctly you need to filter out the
response from a specified service, right? If the requirement is to filter
out any response, that is only look for the first response without waiting
for the second, you could have done that with the aggregate mediator, with
the maximum message count to complete the aggregation set to 1.
If that is the former, then you need to have a content based router at the
out path of the flow and drop the messages from the server that you want to
filter out. See the following config assuming that you want to drop the
response from the service running at port 8080; If it is the other way
around you just need to change the regex in the out path filter to
".*8080.*"
<in>
<filter source="get-property('To')" regex=".*/Event.*">
<clone continueParent="true">
<target>
<sequence>
<property action="set" name="service-port"
value="8080"/>
</sequence>
<endpoint>
<address uri="
http://192.168.239.1:8080/EventService/services/Event"/>
</endpoint>
</target>
</clone>
<property action="set" name="service-port" value="9000"/>
<send>
<endpoint>
<address uri="http://192.168.239.128:9000/services/Event
"/>
</endpoint>
</send>
<drop/>
</filter>
</in>
<out>
<filter source="get-property('service-port')" regex=".*9000.*">
<send/>
</filter>
</out>
Hope this helps...
Thanks,
Ruwan
On Wed, Sep 23, 2009 at 7:18 PM, Florin Bejinaru
<[email protected]>wrote:
> At the moment I am using the following synapse.xml configuration file to
> send a WS request to 2 different service implementations (that is a
> requirement so it can't be changed):
>
> <in>
> <filter source="get-property('To')" regex=".*/Event.*">
> <clone continueParent="true">
> <target>
> <endpoint>
> <address uri="
> http://192.168.239.1:8080/EventService/services/Event"/>
> </endpoint>
> </target>
> </clone>
> <send>
> <endpoint>
> <address uri="
> http://192.168.239.128:9000/services/Event
> "/>
> </endpoint>
> </send>
> <drop/>
> </filter>
> </in>
> <out>
> <send/>
> </out>
>
>
> The problem is that both of those return a response and I was wondering if
> I
> could use synapse to filter out the response from a particular response
> source, or do I need to rewrite one of those services to not return a
> response (which I'm guessing is a bit tricky since Axis2 might be inclined
> to use a InOutMessageReceiver based on the service's WSDL.)
>
> Which would be a decent and simple solution to my problem ?
>
> Thank you,
> Florin
>
--
Ruwan Linton
Technical Lead & Product Manager; WSO2 ESB; http://wso2.org/esb
WSO2 Inc.; http://wso2.org
email: [email protected]; cell: +94 77 341 3097
blog: http://ruwansblog.blogspot.com