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. | |