Hi all,
I try to catch all services which does not match to a registered proxy and
then send back a soap fault message.
To do this I put in my synapse.xml :
<filter source="get-property('To')" regex=".*/.*">
<makefault>
<code value="tns:Receiver"
xmlns:tns="http://www.w3.org/2003/05/soap-envelope"/>
<reason value="Wrong service" />
</makefault>
<log level="full" />
<send/>
</filter>
It works fine, wrong call to webservice are caught but Ive got the
following exception
[HttpServerWorker-1] ERROR Axis2Sender - Unexpected error during sending
message out
org.apache.axis2.AxisFault: Address information does not exist in the
Endpoint Reference (EPR).The system cannot infer the transport mechanism.
at
org.apache.axis2.description.ClientUtils.inferOutTransport(ClientUtils.java:
65)
at
org.apache.synapse.core.axis2.DynamicAxisOperation$DynamicOperationClient.ex
ecuteImpl(DynamicAxisOperation.java:118)
at
org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)
at
org.apache.synapse.core.axis2.Axis2FlexibleMEPClient.send(Axis2FlexibleMEPCl
ient.java:250)
at
org.apache.synapse.core.axis2.Axis2Sender.sendOn(Axis2Sender.java:55)
at
org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvir
onment.java:200)
at
org.apache.synapse.mediators.builtin.SendMediator.mediate(SendMediator.java:
97)
at
org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediat
or.java:60)
at
org.apache.synapse.mediators.filters.FilterMediator.mediate(FilterMediator.j
ava:71)
at
org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediat
or.java:60)
at
org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.
java:122)
at
org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2Syn
apseEnvironment.java:154)
at
org.apache.synapse.core.axis2.SynapseMessageReceiver.receive(SynapseMessageR
eceiver.java:89)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:145)
at
org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HT
TPTransportUtils.java:275)
at
org.apache.synapse.transport.nhttp.ServerWorker.processPost(ServerWorker.jav
a:218)
at
org.apache.synapse.transport.nhttp.ServerWorker.run(ServerWorker.java:182)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.ja
va:650)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:6
75)
at java.lang.Thread.run(Thread.java:595)
and my soap fault is not sent.
Thanks in advance,
Jeremy