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