There are 2 ways to get started with DWR, the easy way is to download the WAR file and have a look around, however this does not help you see how easily DWR integrates with your current web application, so the following 5 simple steps are recommended:
Download the dwr.jar file. Place it in the WEB-INF/lib
directory of your webapp. You'll probably have a set of jar files in there already.
DWR has one dependency on Commons Logging. Download the commons-logging.jar and place it in the WEB-INF/lib
directory of your webapp.
The following lines need to be added to WEB-INF/web.xml
. The <servlet>
section needs to go with the other <servlet>
sections, and likewise with the <servlet-mapping>
section.
<servlet> <servlet-name>dwr-invoker</servlet-name> <display-name>DWR Servlet</display-name> <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>true</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>dwr-invoker</servlet-name> <url-pattern>/dwr/*</url-pattern> </servlet-mapping>
Create a new file in the WEB-INF (alongside web.xml) directory named dwr.xml.
A simple way to start is with something like this:
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN" "http://getahead.org/dwr/dwr30.dtd"> <dwr> <allow> <create creator="new" javascript="JDate"> <param name="class" value="java.util.Date"/> </create> <create creator="new" javascript="Demo"> <param name="class" value="your.java.Bean"/> </create> </allow> </dwr>
The DWR config file defines what classes DWR can create and remote for use by Javascript. In the example above we are defining 2 classes that are remoted and giving the classes names in Javascript.
The new creator that we used above uses the public no-args constructor that all JavaBeans must have. It is also worth remembering that DWR has one restriction:
Visit the dwr.xml documentation for a detailed description of the dwr.xml file, creators and converters.
Go to the following URL:
http://localhost:8080/[YOUR-WEBAPP]/dwr/
You should see a page showing you the classes that you've selected in step 4. Having followed a link you should see an index of all the methods ready for calling. These pages are dynamically generated examples of what you can do using DWR.
Kick the tyres and have a look around.
We have a whole section on writing Javascript with DWR, and there are a number of examples in the sidebar that demonstrate how to dynamically alter the text in web pages, update lists, manipulate forms and do live table editing. Each has a description of how it works.
Another way to get started is to look at the source from the pages that you just viewed:
<script src='/[YOUR-WEBAPP]/dwr/interface/[YOUR-SCRIPT].js'></script> <script src='/[YOUR-WEBAPP]/dwr/engine.js'></script>
You can omit the /[YOUR-WEBAPP]/
section and use relative paths in your web pages if you wish.
Next Step: Learn about writing Javascript that interacts with DWR.
We have a page containing troubleshooting advice and common problems and their fixes. This is the first place to look.
If you are still having problems please join the mailing list and ask there.