Axis2 User's Guide Sample
=========================

This sample contains the source code relevant to the Axis2 Advanced User's Guide,
more specifically the DII (Dynamic Invocation Interface) and XML-based server sections.

The sample explains how to write a Web service and Web service client with 
Apache Axis2 using XML based client APIs (Axis2's Primary APIs).

For new applications, json-springboot-userguide.html brings Axis2 into 
modern API's and contemporary servers. 

Introduction
============

The following sample clients are located at 
AXIS2_HOME/samples/userguide/samples/userguide/src/userguide/clients directory. 

EchoBlockingClient.java -- Demonstrates the request-response, blocking client which 
is written using Axis2's primary APIs.

EchoBlockingDualClient.java -- Demonstrates the request-response, blocking client which 
uses two transport connections and written using Axis2's primary APIs.

EchoNonBlockingClient.java -- Demonstrates the request-response, non-blocking invocation 
which is written using Axis2's primary APIs.

EchoNonBlockingDualClient.java -- Demonstrates the request-response, non-blocking invocation 
using two transport connections and is written using Axis2's primary APIs.

MailClient.java -- Represents a client for invoking 

PingClient.java -- Represents a simple one-way client which is written using Axis2's primary APIs.

RESTClient.java -- Represents a client for invoking a REST Web service

TCPClient.java -- Demonstrates a client for invoking a Web service using TCP

example1, example2 and example3 directories inside Axis2_home/samples/userguide/src/userguide 
contain the Web services which are invoked by the above clients.


Pre-Requisites
==============

Apache Ant 1.8.0 or later

Building the Service
====================
* Type "ant generate.module" from Axis2_HOME/samples/userguide to generate the logging module.
* Add the logging phase to the ../../conf/axis2.xml. For more details please refer to the 
  http://ws.apache.org/axis2/1_2/modules.html
* Type "ant generate.service" or just "ant" from Axis2_HOME/samples/userguide
* Then go to AXIS2_HOME/bin directory and run either axis2server.bat or axis2server.sh depending on your platform.

Alternatively you can copy the the generated service archives in to a servlet container.

If you go to http://localhost:8080/axis2/, you should see MyService, MyServiceWithModule are deployed. 


Running the Clients
===================

Type the following ant commands from Axis2_HOME/samples/userguide to run the clients one by one.

 * "ant run.client.blocking"
   This invokes MyService through a request-response, blocking client.   
 * "ant run.client.blockingdual"
   This invokes MyService through a request-response, blocking client via dual transport channels.   
 * "ant run.client.nonblocking"
   This invokes MyService through a request-response, non-blocking client.  
 * "ant run.client.nonblockingdual"
   This invokes MyService through a request-response, non-blocking client via dual transport channels.   
 * "ant run.client.ping"
   This invokes MyService through a one-way client

 
You can find more information on the above clients in the Axis2 User's Guide, RESTful Web services support,
and TCP Transport documentation. You may find it useful to try out the above services and clients while
going through the project documentation.

Note
==============
Sometimes, if you're having trouble running the client successfully, 
It may be necessary to clean the services repository before you generate the service, deploy it
and run the client. (i.e. delete services created from previous samples.)

Help
====
Please contact axis-user list (axis-user@ws.apache.org) if you have any trouble running the sample.
