Wednesday, August 1, 2007

"Hello, world!" with DWR tool

DWR is tool for enabling RMI on web-server from JavaScript at the client.

What need you do to create first DWR application.

1) Download DWR library.
2) Add description to web.xml


3) Create a class for remote invocation. Let it be following...
package my;
import ...
public class Server {

    private int count = 0;

    public int getCount() {return count;}

    public void increase() {count++}

4) Create dwr.xml description at WEB-INF.
"-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"

<create creator="new" javascript="server">
<param name="class" value="my.Server"/>

This means, if your-web-app/dwr/client.js is requested, DWR will create an instance of my.Server class and a JavaScript stub for it. You may see how this stub looks by link your-wed-app/dwr/interface/server

// Provide a default path to dwr.engine
if (dwr == null) var dwr = {};
if (dwr.engine == null) dwr.engine = {};
if (DWREngine == null) var DWREngine = dwr.engine;

if (server == null) var server = {};
server._path = '/jmxWebApp/dwr';
server.getCount = function(callback) {
dwr.engine._execute(client._path, 'client', 'invoke', callback);
server.increase = function(callback) {
dwr.engine._execute(client._path, 'client', 'setAttribute', callback);

5) Create page using Server invocaion.

    <title>DWR_JMX test</title>
    <script type="text/javascript" src='dwr/engine.js'></script>
    <script type="text/javascript" src='dwr/util.js'></script>
    <script type="text/javascript" src='dwr/server.js'></script>
    <script type="text/javascript">
        server.getCount(new Function("data", "alert(data);"));
        server.increase(new Function(alert("Value increased"));
        server.getCount(new Function("data", "alert(data);"));


Carlos Adrián Rodríguez Oliva said...

What sould we expect when the program runs?

Mary said...

Hello, How do I get in touch with you? There is no email or contact info listed .. please advise .. thanks .. Mary. Please contact me maryregency at gmail dot com