Remoting Options
DWR provides two remoting options:
1) DWR native - By default DWR
uses a superset of JSON that we like to call JavaScript. This was
initially done to cope with recursive data, XML objects, etc., which
the original JSON specifications had a difficult time dealing with. In
this remoting mode DWR's client side engine (engine.js) handles
preparing and executing the call to the server. Most of the
documentation on this site deals with DWR native.
2) JSON/JSONP - In DWR 3 a
JSON/JSONP RESTian API has been added that allows users to access Java
services exposed to DWR via an URL: http://example.com/dwr/jsonp/ClassName/methodName/param1/param2
DWR will reply with a JSON structure containing the result of calling
ClassName.methodName("param1", "param2");
This allows for seamless integration with JavaScript toolkits (DOJO,
ExtJs, jQuery, etc.) while eliminating the need for the developer to
convert the return types of their exposed Java methods into JSON
manually - DWR's server engine handles this.
Getting Started with JSON/JSONP
In order to enable JSON/JSONP you must
add the jsonpEnabled init-param to your DWR servlet definition in your
web.xml. This parameter activates the JSON/JSONP service.
...
<servlet>
<display-name>DWR Servlet</display-name>
<servlet-name>dwr-invoker</servlet-name>
<description>Direct Web Remoter Servlet</description>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>jsonpEnabled</param-name>
<param-value>true</param-value>
</init-param>
...
For an example of the JSON/JSONP functionality you can view this demo which uses JQuery. A similar example using DOJO is also avaiable. Both of these examples are available for download in our dwr.war.