Author: sagara Date: Sat Jan 14 08:55:06 2012 New Revision: 1231465 URL: http://svn.apache.org/viewvc?rev=1231465&view=rev Log: Applied patch for AXIS2-4240.
Modified: axis/axis2/java/core/trunk/modules/samples/userguide/src/userguide/clients/EchoNonBlockingClient.java axis/axis2/java/core/trunk/modules/samples/userguide/src/userguide/clients/EchoNonBlockingDualClient.java Modified: axis/axis2/java/core/trunk/modules/samples/userguide/src/userguide/clients/EchoNonBlockingClient.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/samples/userguide/src/userguide/clients/EchoNonBlockingClient.java?rev=1231465&r1=1231464&r2=1231465&view=diff ============================================================================== --- axis/axis2/java/core/trunk/modules/samples/userguide/src/userguide/clients/EchoNonBlockingClient.java (original) +++ axis/axis2/java/core/trunk/modules/samples/userguide/src/userguide/clients/EchoNonBlockingClient.java Sat Jan 14 08:55:06 2012 @@ -25,16 +25,15 @@ import org.apache.axis2.AxisFault; import org.apache.axis2.addressing.EndpointReference; import org.apache.axis2.client.Options; import org.apache.axis2.client.ServiceClient; -import org.apache.axis2.client.async.AsyncResult; -import org.apache.axis2.client.async.Callback; +import org.apache.axis2.client.async.AxisCallback; /** * Sample for asynchronous single channel non-blocking service invocation. - * Message Exchage Pattern IN-OUT + * Message Exchange Pattern IN-OUT */ public class EchoNonBlockingClient { private static EndpointReference targetEPR = new EndpointReference("http://127.0.0.1:8080/axis2/services/MyService"); - + public static void main(String[] args) { ServiceClient sender = null; try { @@ -43,38 +42,58 @@ public class EchoNonBlockingClient { options.setTo(targetEPR); options.setAction("urn:echo"); - //Callback to handle the response - Callback callback = new Callback() { - public void onComplete(AsyncResult result) { - System.out.println(result.getResponseEnvelope()); - } - - public void onError(Exception e) { - e.printStackTrace(); - } - }; - + TestCallback axisCallback = new TestCallback("CallBack1") ; + //Non-Blocking Invocation sender = new ServiceClient(); sender.setOptions(options); - sender.sendReceiveNonBlocking(payload, callback); - - //Wait till the callback receives the response. - while (!callback.isComplete()) { - Thread.sleep(1000); + sender.sendReceiveNonBlocking(payload, axisCallback); + + while ( ! axisCallback.isComplete( ) ) { + Thread.sleep(100); } - } catch (AxisFault axisFault) { - axisFault.printStackTrace(); } catch (Exception ex) { ex.printStackTrace(); } finally { try { sender.cleanup(); } catch (AxisFault axisFault) { - // + axisFault.printStackTrace(); } } } + + static class TestCallback implements AxisCallback { + + private String name = null; + private boolean complete = false; + + public TestCallback (String name) { + this.name = name; + } + + public void onError (Exception e) { + e.printStackTrace(); + } + + public void onComplete() { + System.out.println( "Message transmission complete") ; + complete = true; + } + + public boolean isComplete() { + return complete; + } + + public void onMessage(org.apache.axis2.context.MessageContext arg0) { + System.out.println( "Call Back " + name + " got Result: " + arg0.getEnvelope() ) ; + } + + public void onFault(org.apache.axis2.context.MessageContext arg0) { + System.out.println( "Call Back " + name + " got Fault: " + arg0.getEnvelope() ) ; + } + } + } Modified: axis/axis2/java/core/trunk/modules/samples/userguide/src/userguide/clients/EchoNonBlockingDualClient.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/samples/userguide/src/userguide/clients/EchoNonBlockingDualClient.java?rev=1231465&r1=1231464&r2=1231465&view=diff ============================================================================== --- axis/axis2/java/core/trunk/modules/samples/userguide/src/userguide/clients/EchoNonBlockingDualClient.java (original) +++ axis/axis2/java/core/trunk/modules/samples/userguide/src/userguide/clients/EchoNonBlockingDualClient.java Sat Jan 14 08:55:06 2012 @@ -23,13 +23,11 @@ package userguide.clients; import org.apache.axiom.om.OMElement; import org.apache.axis2.AxisFault; import org.apache.axis2.Constants; +import org.apache.axis2.addressing.AddressingConstants; import org.apache.axis2.addressing.EndpointReference; import org.apache.axis2.client.Options; import org.apache.axis2.client.ServiceClient; -import org.apache.axis2.client.async.AsyncResult; -import org.apache.axis2.client.async.Callback; - -import javax.xml.namespace.QName; +import org.apache.axis2.client.async.AxisCallback; /** * Sample for asynchronous dual channel non-blocking service invocation. @@ -51,40 +49,59 @@ public class EchoNonBlockingDualClient { options.setUseSeparateListener(true); options.setAction("urn:echo"); // this is the action mapping we put within the service.xml - //Callback to handle the response - Callback callback = new Callback() { - public void onComplete(AsyncResult result) { - System.out.println(result.getResponseEnvelope()); - } - - public void onError(Exception e) { - e.printStackTrace(); - } - }; - + TestCallback axisCallback = new TestCallback("CallBack1") ; + //Non-Blocking Invocation sender = new ServiceClient(); sender.engageModule(Constants.MODULE_ADDRESSING); sender.setOptions(options); - sender.sendReceiveNonBlocking(payload, callback); + sender.sendReceiveNonBlocking(payload, axisCallback); //Wait till the callback receives the response. - while (!callback.isComplete()) { - Thread.sleep(1000); + while ( ! axisCallback.isComplete( ) ) { + Thread.sleep(100); } - //Need to close the Client Side Listener. - - } catch (AxisFault axisFault) { - axisFault.printStackTrace(); + } catch (Exception ex) { ex.printStackTrace(); } finally { try { sender.cleanup(); } catch (AxisFault axisFault) { - //have to ignore this + axisFault.printStackTrace(); } + } + } + + static class TestCallback implements AxisCallback { + private String name = null; + private boolean complete = false; + + public TestCallback (String name) { + this.name = name; + } + + public void onError (Exception e) { + e.printStackTrace(); + } + + public void onComplete() { + System.out.println( "Message transmission complete") ; + complete = true; + } + + public boolean isComplete() { + return complete; + } + + public void onMessage(org.apache.axis2.context.MessageContext arg0) { + System.out.println( "Call Back " + name + " got Result: " + arg0.getEnvelope() ) ; + } + + public void onFault(org.apache.axis2.context.MessageContext arg0) { + System.out.println( "Call Back " + name + " got Fault: " + arg0.getEnvelope() ) ; + } } }