Hello! I am now experimenting : "Sample 5: Creating SOAP fault messages and changing the direction of a message" The fault handler works but I am quite surprised by the numerous exceptions generated after the java.net.UnknownHostException. Here are the synapse log lines: <!----- BEGINNING 2007-11-27 09:34:11,975 [127.0.0.1-localhost.localdomain] [HttpCoreNIOSender] WARN FaultHandler Fault handler - setting ERROR_MESSAGE : java.net.UnknownHostException: bogus 2007-11-27 09:34:11,975 [127.0.0.1-localhost.localdomain] [HttpCoreNIOSender] WARN FaultHandler Fault handler - setting ERROR_DETAIL : java.lang.Exception: <soapenv:Fault xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><faultcode>soapenv:Server</faultcode><faultstring>java.net.UnknownHostException: bogus</faultstring><detail /></soapenv:Fault> at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:164) at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:125) at org.apache.synapse.transport.nhttp.HttpCoreNIOSender$3.handleError(HttpCoreNIOSender.java:465) at org.apache.synapse.transport.nhttp.HttpCoreNIOSender$3.failed(HttpCoreNIOSender.java:435) at org.apache.http.impl.nio.reactor.SessionRequestImpl.failed(SessionRequestImpl.java:139) at org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processSessionRequests(DefaultConnectingIOReactor.java:216) at org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processEvents(DefaultConnectingIOReactor.java:75) at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor.execute(AbstractMultiworkerIOReactor.java:157) at org.apache.synapse.transport.nhttp.HttpCoreNIOSender.executeClientEngine(HttpCoreNIOSender.java:139) at org.apache.synapse.transport.nhttp.HttpCoreNIOSender.access$000(HttpCoreNIOSender.java:68) at org.apache.synapse.transport.nhttp.HttpCoreNIOSender$1.run(HttpCoreNIOSender.java:101) at java.lang.Thread.run(Thread.java:619)
2007-11-27 09:34:11,976 [127.0.0.1-localhost.localdomain] [HttpCoreNIOSender] DEBUG AddressEndpoint Start : Address Endpoint 2007-11-27 09:34:11,976 [127.0.0.1-localhost.localdomain] [HttpCoreNIOSender] DEBUG AddressEndpoint Sending message to endpoint : AnonymousEndpoint resolves to address = http://localhost:8081/CalculatorWSApplication/CalculatorWS 2007-11-27 09:34:11,976 [127.0.0.1-localhost.localdomain] [HttpCoreNIOSender] DEBUG AddressEndpoint SOAPAction: http://calculator.me.org/CalculatorWS/multiplyRequest 2007-11-27 09:34:11,976 [127.0.0.1-localhost.localdomain] [HttpCoreNIOSender] DEBUG AddressEndpoint WSA-Action: http://calculator.me.org/CalculatorWS/multiplyRequest 2007-11-27 09:34:11,976 [127.0.0.1-localhost.localdomain] [HttpCoreNIOSender] DEBUG Axis2FlexibleMEPClient Sending [add = true] [sec = false] [rm = false] [ mtom = false] [ swa = false] [ format = null] [ force soap11=false] [ force soap12=false; pox=false] [ to Address: /soap/CalculatorProxy] 2007-11-27 09:34:12,058 [127.0.0.1-localhost.localdomain] [HttpServerWorker-2] DEBUG DropMediator End : Drop mediator 2007-11-27 09:34:12,059 [127.0.0.1-localhost.localdomain] [HttpServerWorker-2] DEBUG SequenceMediator End : Sequence <in> 2007-11-27 09:34:12,059 [127.0.0.1-localhost.localdomain] [HttpCoreNIOSender] DEBUG ConnectionPool No connections available for reuse 2007-11-27 09:34:12,073 [127.0.0.1-localhost.localdomain] [HttpCoreNIOSender] DEBUG HttpCoreNIOSender A new connection established 2007-11-27 09:34:12,073 [127.0.0.1-localhost.localdomain] [HttpCoreNIOSender] DEBUG Axis2HttpRequest start streaming outgoing http request 2007-11-27 09:34:12,088 [127.0.0.1-localhost.localdomain] [HttpCoreNIOSender] DEBUG SOAPMessageFormatter start writeTo() 2007-11-27 09:34:12,090 [127.0.0.1-localhost.localdomain] [HttpCoreNIOSender] DEBUG SOAPMessageFormatter preserve=true 2007-11-27 09:34:12,090 [127.0.0.1-localhost.localdomain] [HttpCoreNIOSender] DEBUG SOAPMessageFormatter isOptimized=false 2007-11-27 09:34:12,091 [127.0.0.1-localhost.localdomain] [HttpCoreNIOSender] DEBUG SOAPMessageFormatter isDoingSWA=false 2007-11-27 09:34:12,091 [127.0.0.1-localhost.localdomain] [HttpCoreNIOSender] DEBUG SOAPMessageFormatter end writeTo() 2007-11-27 09:34:12,121 [127.0.0.1-localhost.localdomain] [HttpCoreNIOSender] WARN FaultHandler Fault handler - setting ERROR_MESSAGE : java.net.ConnectException: Connection refused 2007-11-27 09:34:12,122 [127.0.0.1-localhost.localdomain] [HttpCoreNIOSender] WARN FaultHandler Fault handler - setting ERROR_DETAIL : java.lang.Exception: <soapenv:Fault xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><faultcode>soapenv:Server</faultcode><faultstring>java.net.ConnectException: Connection refused</faultstring><detail /></soapenv:Fault> at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:164) at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:125) at org.apache.synapse.transport.nhttp.HttpCoreNIOSender$3.handleError(HttpCoreNIOSender.java:465) at org.apache.synapse.transport.nhttp.HttpCoreNIOSender$3.failed(HttpCoreNIOSender.java:435) at org.apache.http.impl.nio.reactor.SessionRequestImpl.failed(SessionRequestImpl.java:139) at org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processEvent(DefaultConnectingIOReactor.java:112) at org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processEvents(DefaultConnectingIOReactor.java:82) at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor.execute(AbstractMultiworkerIOReactor.java:157) at org.apache.synapse.transport.nhttp.HttpCoreNIOSender.executeClientEngine(HttpCoreNIOSender.java:139) at org.apache.synapse.transport.nhttp.HttpCoreNIOSender.access$000(HttpCoreNIOSender.java:68) at org.apache.synapse.transport.nhttp.HttpCoreNIOSender$1.run(HttpCoreNIOSender.java:101) at java.lang.Thread.run(Thread.java:619) 2007-11-27 09:34:12,122 [127.0.0.1-localhost.localdomain] [HttpCoreNIOSender] WARN FaultHandler FaultHandler executing impl: org.apache.synapse.mediators.MediatorFaultHandler 2007-11-27 09:34:12,122 [127.0.0.1-localhost.localdomain] [HttpCoreNIOSender] WARN MediatorFaultHandler Executing fault handler mediator : myFaultHandler 2007-11-27 09:34:12,128 [127.0.0.1-localhost.localdomain] [HttpCoreNIOSender] DEBUG SequenceMediator Start : Sequence <myFaultHandler> 2007-11-27 09:34:12,128 [127.0.0.1-localhost.localdomain] [HttpCoreNIOSender] DEBUG SequenceMediator Sequence <SequenceMediator> :: mediate() 2007-11-27 09:34:12,128 [127.0.0.1-localhost.localdomain] [HttpCoreNIOSender] DEBUG FaultMediator Start : Fault mediator 2007-11-27 09:34:12,128 [127.0.0.1-localhost.localdomain] [HttpCoreNIOSender] DEBUG FaultMediator Creating a SOAP 1.1 fault 2007-11-27 09:34:12,132 [127.0.0.1-localhost.localdomain] [HttpCoreNIOSender] DEBUG FaultMediator End : Fault mediator 2007-11-27 09:34:12,132 [127.0.0.1-localhost.localdomain] [HttpCoreNIOSender] DEBUG PropertyMediator Start : Property mediator 2007-11-27 09:34:12,132 [127.0.0.1-localhost.localdomain] [HttpCoreNIOSender] DEBUG PropertyMediator Setting property : RESPONSE at scope : default to : true (i.e. constant : true) 2007-11-27 09:34:12,132 [127.0.0.1-localhost.localdomain] [HttpCoreNIOSender] DEBUG PropertyMediator End : Property mediator 2007-11-27 09:34:12,133 [127.0.0.1-localhost.localdomain] [HttpCoreNIOSender] DEBUG HeaderMediator Start : Header mediator 2007-11-27 09:34:12,133 [127.0.0.1-localhost.localdomain] [HttpCoreNIOSender] DEBUG HeaderMediator Set SOAP header : To to : 2007-11-27 09:34:12,133 [127.0.0.1-localhost.localdomain] [HttpCoreNIOSender] DEBUG HeaderMediator End : Header mediator 2007-11-27 09:34:12,133 [127.0.0.1-localhost.localdomain] [HttpCoreNIOSender] DEBUG SendMediator Start : Send mediator 2007-11-27 09:34:12,133 [127.0.0.1-localhost.localdomain] [HttpCoreNIOSender] DEBUG SendMediator Sending response message using implicit message properties.. Sending To: SOAPAction: http://calculator.me.org/CalculatorWS/multiplyRequest 2007-11-27 09:34:12,153 [127.0.0.1-localhost.localdomain] [HttpCoreNIOSender] ERROR HttpCoreNIOSender Malformed destination EPR : java.net.MalformedURLException: no protocol: at java.net.URL.<init>(URL.java:567) at java.net.URL.<init>(URL.java:464) at java.net.URL.<init>(URL.java:413) at org.apache.synapse.transport.nhttp.HttpCoreNIOSender.sendAsyncRequest(HttpCoreNIOSender.java:278) at org.apache.synapse.transport.nhttp.HttpCoreNIOSender.invoke(HttpCoreNIOSender.java:218) at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:396) at org.apache.synapse.core.axis2.Axis2Sender.sendBack(Axis2Sender.java:104) at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:197) at org.apache.synapse.mediators.builtin.SendMediator.mediate(SendMediator.java:97) at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:60) at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:122) at org.apache.synapse.mediators.MediatorFaultHandler.onFault(MediatorFaultHandler.java:79) at org.apache.synapse.FaultHandler.handleFault(FaultHandler.java:53) at org.apache.synapse.endpoints.FailoverEndpoint.send(FailoverEndpoint.java:100) at org.apache.synapse.endpoints.FailoverEndpoint.onChildEndpointFail(FailoverEndpoint.java:159) at org.apache.synapse.endpoints.AddressEndpoint.onFault(AddressEndpoint.java:230) at org.apache.synapse.FaultHandler.handleFault(FaultHandler.java:94) at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:175) at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:125) at org.apache.synapse.transport.nhttp.HttpCoreNIOSender$3.handleError(HttpCoreNIOSender.java:465) at org.apache.synapse.transport.nhttp.HttpCoreNIOSender$3.failed(HttpCoreNIOSender.java:435) at org.apache.http.impl.nio.reactor.SessionRequestImpl.failed(SessionRequestImpl.java:139) at org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processEvent(DefaultConnectingIOReactor.java:112) at org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processEvents(DefaultConnectingIOReactor.java:82) at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor.execute(AbstractMultiworkerIOReactor.java:157) at org.apache.synapse.transport.nhttp.HttpCoreNIOSender.executeClientEngine(HttpCoreNIOSender.java:139) at org.apache.synapse.transport.nhttp.HttpCoreNIOSender.access$000(HttpCoreNIOSender.java:68) at org.apache.synapse.transport.nhttp.HttpCoreNIOSender$1.run(HttpCoreNIOSender.java:101) at java.lang.Thread.run(Thread.java:619) 2007-11-27 09:34:12,156 [127.0.0.1-localhost.localdomain] [HttpCoreNIOSender] ERROR Axis2Sender Unexpected error sending message back org.apache.axis2.AxisFault: Malformed destination EPR : -------> END Besides, perhaps due to these exceptions, no message is returned to the client as a SOAP fault. Moreover, I think that the "java.net.MalformedURLException: no protocol:" is due to the fact that the SOAP client does not use the WSA header named "Reply-To" which is empty. I used JAX-WS 2.1 to write this client and I must admit that JAX is not yet ready to be interoperable with synapse. Thanks by advance. Sihem --------------------------------- Ne gardez plus qu'une seule adresse mail ! Copiez vos mails vers Yahoo! Mail
