| Calculator Sample |
| ================= |
| This sample uses the same code as the calculator sample but deploys the |
| sample wrapped in a web app. |
| |
| 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-webapp.war) |
| to you web application server. |
| |
| Once the web app is deployed use your browser to visit the following URL; |
| |
| http://localhost:8080/sample-calculator-webapp/calc.jsp |
| |
| The port and hostname will of course vary depending on your local installation. |
| |
| 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 across the local wires. |
| |
| calculator-webapp/ |
| src/ |
| main/ |
| java/ |
| calculator/ |
| CalculatorService.java - As calculator sample |
| CalculatorServiceImpl.java |
| AddService.java - As calculator sample |
| AddServiceImpl.java |
| SubtractService.java - As calculator sample |
| SubtractServiceImpl.java |
| MultiplyService.java - As calculator sample |
| MultiplyServiceImpl.java |
| DivideService.java - As calculator sample |
| DivideServiceImpl.java |
| CalculatorClient.java - As calculator sample |
| resources/ |
| Calculator.composite - As calculator sample |
| 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 |
| calc.jsp - the web application that makes use of the |
| SCA application |
| test/ |
| java/ |
| calculator/ |
| CalculatorTestCase.java - JUnit test case |
| |
| calculator.png - a pictorial representation of the sample .composite file |
| build.xml - the Ant build file |
| pom.xml - the Maven build file |
| |
| Building And Running The Sample Using Ant |
| ----------------------------------------- |
| With the binary distribution the sample can be built using Ant as |
| follows |
| |
| cd calculator-webapp |
| ant package |
| |
| This should result in a war file (sample-calculator-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-webapp/calc.jsp |
| |
| 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-webapp |
| mvn |
| |
| |
| You should see the following output from the test phase. |
| |
| ------------------------------------------------------- |
| T E S T S |
| ------------------------------------------------------- |
| Running calculator.CalculatorTestCase |
| Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.852 sec |
| |
| Results : |
| |
| Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 |
| |
| Again this should result in a war file (sample-calculator-webapp.war) in the target |
| directory. Follow the steps described in the previous section for running the web |
| app and for the expected results. |
| |
| |