This is a Calculator web service, packaged as a servlet, with only one operation add which 
adds two numbers. Client is a standalone java application which can send  request
to the webservice either in standard way using HTTP or through SOAPBinding.
By default the web service is activated in JBI environment. The sample also demonstrates 
how an endpoint can be deactivated from JBI environment.

ant all of this sample does the following : 
 
1. compiles and deploys the web service on application server, deploys a 
producer service unit on SOAP Binding
2. sends a request through SOAP binding,
3. disable activation of web service in JBI and send requests through JBI SOAP binding again for testing negative test scenario,  
4. runs the client which makes request web service invocation using HTTP to confirm that web service is still accessible using normal path even though it has been deactivated from JBI,
5. Activate the web service again in JBI and send a request through SOAP binding 
6. undeploy application from app server and service assembly deployment from 
SOAP Binding.

