Author: indika Date: Mon Jan 7 23:22:54 2008 New Revision: 609894 URL: http://svn.apache.org/viewvc?rev=609894&view=rev Log: add a simple sample for callout mediator and upadate the docs
Added: webservices/synapse/branches/1.1.1/repository/conf/sample/synapse_sample_430.xml Modified: webservices/synapse/branches/1.1.1/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CalloutMediator.java webservices/synapse/branches/1.1.1/src/site/resources/Synapse_Samples.html Modified: webservices/synapse/branches/1.1.1/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CalloutMediator.java URL: http://svn.apache.org/viewvc/webservices/synapse/branches/1.1.1/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CalloutMediator.java?rev=609894&r1=609893&r2=609894&view=diff ============================================================================== --- webservices/synapse/branches/1.1.1/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CalloutMediator.java (original) +++ webservices/synapse/branches/1.1.1/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CalloutMediator.java Mon Jan 7 23:22:54 2008 @@ -35,6 +35,7 @@ import org.apache.axiom.om.OMElement; import org.apache.axiom.om.OMNode; import org.apache.axiom.om.xpath.AXIOMXPath; +import org.apache.axiom.soap.SOAPBody; import org.jaxen.JaxenException; import java.util.List; @@ -73,14 +74,18 @@ try { Options options = new Options(); options.setTo(new EndpointReference(serviceURL)); - options.setAction(action); + + if (action != null) { + options.setAction(action); + } + options.setProperty(AddressingConstants.DISABLE_ADDRESSING_FOR_OUT_MESSAGES, Boolean.TRUE); sc.setOptions(options); OMElement request = getRequestPayload(synCtx); if (traceOrDebugOn) { - traceOrDebug(traceOn, "About to invoke service : " + serviceURL + - " with action : " + action); + traceOrDebug(traceOn, "About to invoke service : " + serviceURL + (action != null ? + " with action : " + action : "")); if (traceOn && trace.isTraceEnabled()) { trace.trace("Request message payload : " + request); } @@ -120,7 +125,8 @@ } } catch (Exception e) { - handleException("Error invoking service : " + serviceURL + " with action : " + action, e, synCtx); + handleException("Error invoking service : " + serviceURL + + (action != null ? " with action : " + action : ""), e, synCtx); } if (traceOrDebugOn) { Added: webservices/synapse/branches/1.1.1/repository/conf/sample/synapse_sample_430.xml URL: http://svn.apache.org/viewvc/webservices/synapse/branches/1.1.1/repository/conf/sample/synapse_sample_430.xml?rev=609894&view=auto ============================================================================== --- webservices/synapse/branches/1.1.1/repository/conf/sample/synapse_sample_430.xml (added) +++ webservices/synapse/branches/1.1.1/repository/conf/sample/synapse_sample_430.xml Mon Jan 7 23:22:54 2008 @@ -0,0 +1,35 @@ +<!-- + ~ Licensed to the Apache Software Foundation (ASF) under one + ~ or more contributor license agreements. See the NOTICE file + ~ distributed with this work for additional information + ~ regarding copyright ownership. The ASF licenses this file + ~ to you under the Apache License, Version 2.0 (the + ~ "License"); you may not use this file except in compliance + ~ with the License. You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, + ~ software distributed under the License is distributed on an + ~ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + ~ KIND, either express or implied. See the License for the + ~ specific language governing permissions and limitations + ~ under the License. + --> + +<!-- Simple callout mediator --> +<definitions xmlns="http://ws.apache.org/ns/synapse"> + <callout serviceURL="http://localhost:9000/soap/SimpleStockQuoteService" + action="urn:getQuote"> + <source xmlns:s11="http://schemas.xmlsoap.org/soap/envelope/" + xmlns:s12="http://www.w3.org/2003/05/soap-envelope" + xpath="s11:Body/child::*[fn:position()=1] | s12:Body/child::*[fn:position()=1]"/> + <target xmlns:s11="http://schemas.xmlsoap.org/soap/envelope/" + xmlns:s12="http://www.w3.org/2003/05/soap-envelope" + xpath="s11:Body/child::*[fn:position()=1] | s12:Body/child::*[fn:position()=1]"/> + </callout> + <property name="RESPONSE" value="true"/> + <header name="To" action="remove"/> + <send/> + <drop/> +</definitions> \ No newline at end of file Modified: webservices/synapse/branches/1.1.1/src/site/resources/Synapse_Samples.html URL: http://svn.apache.org/viewvc/webservices/synapse/branches/1.1.1/src/site/resources/Synapse_Samples.html?rev=609894&r1=609893&r2=609894&view=diff ============================================================================== --- webservices/synapse/branches/1.1.1/src/site/resources/Synapse_Samples.html (original) +++ webservices/synapse/branches/1.1.1/src/site/resources/Synapse_Samples.html Mon Jan 7 23:22:54 2008 @@ -297,6 +297,13 @@ synapse for the actual service</a></li> </ul> </li> + <li><a href="#Callout">Synchronize web service invocation with Callout + mediator </a> + <ul> + <li><a href="#Sample430">Sample 430: Simple Callout Mediator for + Synchronize web service invocation</a></li> + </ul> + </li> </ul> </li> </ul> @@ -4163,7 +4170,7 @@ <publishWSDL uri="file:repository/conf/sample/resources/proxy/sample_proxy_1.wsdl"/> </proxy> -</definitions> </pre> +</definitions> </pre> <p><b>Objective: Introduction transformation using XQuery mediator</b></p> @@ -4362,10 +4369,59 @@ the requests will be served by the cache inside Synapse. You could observe this by looking at the printed line of the axis2 server, as well as by observing a constant rate as the response to the client instead of the random -rate, which changes by each and every 20 seconds.</p> +rate, which changes by each and every 20 seconds.<br> +</p> -<p> </p> +<h2><a name="Callout">Synchronize web service invocation with Callout +mediator </a></h2> + +<p>The Callout mediator does the call for provided service URL with the +request message which get through source attribute and wait for the response +and attached received response to the destination which has specified by the +target. Both of source and target could be a key or a XPath. In the case of +source ,this key refers to either a message context property or to a local +entry and for the target this key refers only to a message context property . +</p> + +<h2><a name="Sample430">Sample 430: Simple Callout Mediator for Synchronize +web service invocation</a></h2> <p> </p> +<pre> + <!-- Simple callout mediator --> +<definitions xmlns="http://ws.apache.org/ns/synapse"> + <callout serviceURL="http://localhost:9000/soap/SimpleStockQuoteService" + action="urn:getQuote"> + <source xmlns:s11="http://schemas.xmlsoap.org/soap/envelope/" + xmlns:s12="http://www.w3.org/2003/05/soap-envelope" + xpath="s11:Body/child::*[fn:position()=1] | s12:Body/child::*[fn:position()=1]"/> + <target xmlns:s11="http://schemas.xmlsoap.org/soap/envelope/" + xmlns:s12="http://www.w3.org/2003/05/soap-envelope" + xpath="s11:Body/child::*[fn:position()=1] | s12:Body/child::*[fn:position()=1]"/> + </callout> + <property name="RESPONSE" value="true"/> + <header name="To" action="remove"/> + <send/> + <drop/> +</definitions> </pre> + +<div> +<p> <strong>Objective:</strong> Demonstrate the use of the Callout mediator +for the synchronize web service invocation</p> + +<p><strong>Prerequisites:</strong>Deploy the SimpleStockQuoteService in +sample Axis2 server and start it on port 9000.</p> + +<p>Start Synapse with the sample configuration 430 (i.e. synapse -sample +430).</p> + +<p>In this sample , Callout mediator does the direct service invocation to +the StockQuoteService using the client request and the get the response and +set it as the first child of the SOAP message body. Then using send mediator +message is sent back to the client. </p> + +<p>Invoke the client as follows. </p> +<pre>ant stockquote -Daddurl=http://localhost:9000/soap/SimpleStockQuoteService -Dtrpurl=http://localhost:8080/</pre> +</div> </body> </html> --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]