Hello,
I have problem with sending back empty message for some condition:
<sequence name="hotels-sequence">
<filter source="//book:getPackage/hotels" regex="true">
<then>
<send>
<endpoint>
<address
uri="http://remote.webservice.test.com:8177/" />
</endpoint>
</send>
</then>
<else>
<xslt key="transform/empty_message.xslt">
<feature
name="http://ws.apache.org/ns/synapse/transform/feature/dom"
value="true"/>
</xslt>
<property name="RESPONSE" value="true"/>
<send />
</else>
</filter>
</sequence>
Transformation is done to have simpel XML output:
<response></response> - maybe there is better way?
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:fn="http://www.w3.org/2005/xpath-functions"
exclude-result-prefixes="fn xs xsi xsl">
<xsl:output method="xml" encoding="UTF-8" indent="yes"/>
<xsl:template match="/*">
<response></response>
</xsl:template>
</xsl:stylesheet>
I thought that switching property to RESPONSE, and send without
address parameters will send the message back to the aggreagator which
is next step of processing messages, but I have got this instead:
2008-12-09 09:59:29,343 [192.168.3.17-adr-37ac1b] [SynapseWorker-2]
ERROR HttpCoreNIOSender Malformed destination EPR :
/soap/BookingSystemProxy.BookingSystemProxyHttpsSoap12Endpoint
java.net.MalformedURLException: no protocol:
/soap/BookingSystemProxy.BookingSystemProxyHttpsSoap12Endpoint
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at
org.apache.synapse.transport.nhttp.HttpCoreNIOSender.sendAsyncRequest(HttpCoreNIOSender.java:317)
at
org.apache.synapse.transport.nhttp.HttpCoreNIOSender.invoke(HttpCoreNIOSender.java:256)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:448)
at
org.apache.synapse.core.axis2.Axis2Sender.sendBack(Axis2Sender.java:132)
at
org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:202)
at
org.apache.synapse.mediators.builtin.SendMediator.mediate(SendMediator.java:77)
at
org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:61)
at
org.apache.synapse.config.xml.AnonymousListMediator.mediate(AnonymousListMediator.java:30)
at
org.apache.synapse.mediators.filters.FilterMediator.mediate(FilterMediator.java:143)
at
org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:61)
at
org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:111)
at
org.apache.synapse.mediators.MediatorWorker.run(MediatorWorker.java:70)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
2008-12-09 09:59:29,406 [192.168.3.17-adr-37ac1b] [SynapseWorker-2]
ERROR Axis2Sender Unexpected error sending message back
org.apache.axis2.AxisFault: Malformed destination EPR :
/soap/BookingSystemProxy.BookingSystemProxyHttpsSoap12Endpoint
at
org.apache.synapse.transport.nhttp.HttpCoreNIOSender.handleException(HttpCoreNIOSender.java:550)
at
org.apache.synapse.transport.nhttp.HttpCoreNIOSender.sendAsyncRequest(HttpCoreNIOSender.java:349)
at
org.apache.synapse.transport.nhttp.HttpCoreNIOSender.invoke(HttpCoreNIOSender.java:256)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:448)
at
org.apache.synapse.core.axis2.Axis2Sender.sendBack(Axis2Sender.java:132)
at
org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:202)
at
org.apache.synapse.mediators.builtin.SendMediator.mediate(SendMediator.java:77)
at
org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:61)
at
org.apache.synapse.config.xml.AnonymousListMediator.mediate(AnonymousListMediator.java:30)
at
org.apache.synapse.mediators.filters.FilterMediator.mediate(FilterMediator.java:143)
at
org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:61)
at
org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:111)
at
org.apache.synapse.mediators.MediatorWorker.run(MediatorWorker.java:70)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.net.MalformedURLException: no protocol:
/soap/BookingSystemProxy.BookingSystemProxyHttpsSoap12Endpoint
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at
org.apache.synapse.transport.nhttp.HttpCoreNIOSender.sendAsyncRequest(HttpCoreNIOSender.java:317)
... 14 more
What is the solution of my problem - maybe there are some
architectural misunderstandings? I can't drop or makeFault message
because further aggregation don't work - so I think I need to send
empty message back.
Please help if you can, I'm really stuck with that :(
Best regards,
Adr