summaryrefslogtreecommitdiffstats
path: root/sca-java-1.x/trunk/samples/chat-webapp/README
blob: 9e271664725b2c4580b921f5e89fdb8b299615ef (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
Chat WebApp Sample
==================
This sample demonstrates the SCA DWR binding to implement the classic Ajax sample
of a chat application which allows multiple users to chat from their browsers.

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-chat-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-chat-webapp

The port and hostname will of course vary depending on your local installation. 

Note: There can be a delay before a browser client receives a message typed into
the chat.  Some browsers receive pending messages immediately, some browsers
receive pending messages when a new message is sent, and some browsers receive
pending messages after a time delay of up to one minute.

Sample Overview
---------------
The sample provides an SCA component which has an SCA service using the SCA DWR
binding and an SCA reference also using the DWR binding. The component implementation 
simply forwards every invocation of the service as an invocation on the reference. The
component reference is scoped by the composite so every active client of the composite
will receive every message sent to the component service, thus implementing the chat
application with very little code.

chat-webapp/
  src/
    main/
      java/
        sample/
          ChatService.java            - service interface
          ChatServiceImpl.java        - service implementation
      resources/
        chat.composite                - the SCA assembly for this sample
      webapp
        chat.html                     - the html UserInterface for this application
        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
           
  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 chat-webapp
ant package

This should result in a war file (sample-chat-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-chat-webapp

The port and hostname will of course vary depending on your local installation. 

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 chat-webapp 
mvn

Again this should result in a war file (sample-chat-webapp.war) in the target 
directory. Follow the steps described in the previous section for running the web 
app and for the expected results.