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 I’ve 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

 

Reply via email to