blob: 0e97f4de33ce4fe8e5e639bea43c004a00430553 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
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-webapp.war)
to you web application server.
*****
Note: this sample does not come with a pre-built WAR so you must first
build the sample by following the building instructions below
*****
You may find that you need to remove the servlet-api jars in WEB-INF/lib
depending on which app server you are using.
Once the web app is deployed use your browser to visit the following URL;
http://localhost:8085/sample-calculator-webapp-ws/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 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
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-web
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:8085/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-web
mvn
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.
|