Calculator Sample Exposing Web Services In A WebApp =================================================== This sample uses the same code as the calculator sample, it deploys the sample wrapped in a web app and exposes the AddService as a web service. The README in the samples directory (the directory above this) provides general instructions about building and running samples. Take a look there first. As this sample provides a web app there is a manual step where the WAR file that contains the sample is copied to your web app container. If you just want to give this sample a go, deploy the WAR file (target/sample-calculator-ws-webapp.war) to your web application server. To save space, the WAR file isn't included in the binary distribution. You can build it by following the instructions below in "Building And Running The Sample Using Ant" or "Building And Running The Sample Using Maven". Once the web app is deployed use your browser to visit the following URL; http://localhost:8080/sample-calculator-ws-webapp The sample is configured to use a service on port 8080. If your servlet container is using a port other than 8080 then you will need to edit the Calculator.composite and change the uri attribute of the used by the CalculatorServiceComponent to use the correct port. Sample Overview --------------- The sample provides a single calculator service with a default SCA (java) binding. The CalculatorClient exercises this interface by calling add, subtract, multiply and divide operations. This results in messages passing to the appropriate components in the composite. calculator-webapp/ src/ main/ java/ calculator/ AddService.java - As calculator sample AddServiceImpl.java CalculatorClient.java - As calculator sample CalculatorService.java - As calculator sample CalculatorServiceImpl.java DivideService.java - As calculator sample DivideServiceImpl.java MultiplyService.java - As calculator sample MultiplyServiceImpl.java SubtractService.java - As calculator sample SubtractServiceImpl.java resources/ Calculator.composite - As calculator sample except that the connection between the CalculatorService and the AddService is web services webapp META-INF/ sca-contribution.xml - specifies the composite to be deployed WEB-INF/ web.xml - defines the listener that starts up the Tuscany SCA runtime and maps service calls to the TuscanyServlet calc.jsp - the web application that makes use of the SCA application calculator.png - a pictorial representation of the sample .composite file build.xml - the Ant build file pom.xml - the Maven build file README - this file Building And Running The Sample Using Ant ----------------------------------------- With the binary distribution the sample can be built using Ant as follows cd calculator-ws-webapp ant package This should result in a war file (sample-calculator-ws-webapp.war) in the target directory. Copy this war file to your web app deployment directory in you web app container. The process for getting the web app running will depend on which web app container you are using. For example, if you are using Tomcat then it is simply a matter of copying the WAR file to the webapps directory. Once the web app is deployed use your browser to visit the following URL; http://localhost:8080/sample-calculator-ws-webapp The port and hostname will of course vary depending on your local installation. You should see the following output. Expression Result 2 + 3 5.0 3 - 2 1.0 3 * 2 6.0 3 / 2 1.5 Building And Running The Sample Using Maven ------------------------------------------- With either the binary or source distributions the sample can be built and run using Maven as follows. cd calculator-ws-webapp mvn Again this should result in a war file (sample-calculator-ws-webapp.war) in the target directory. Follow the steps described in the previous section for running the web app and for the expected results.