Hoy he conseguido integrar DWR con el dúo Rhino/Jetty, lo que permite //casi// exportar mediante
DWR objetos creados en tiempo de ejecución.
Digo //casi// porque es necesario primero declarar una interfaz/clase abstracta en Java para que DWR sepa que metodos exportar. Es decir, siguiendo la terminología RMI,
el //squeleton// o //stub// es simplemente la clase en Java.
!!AbstractForm.java
{{{
public abstract class AbstractForm{
public abstract Object send(java.util.Map form) throws Exception;
}
}}}
Una vez definida la interfaz, solo queda implementar una subclase en javascript
!!ContactForm.js
{{{
function send(map){
print("************* Message received *********");
for (var i in map.values)print(map[i]);
return "Message Ok";
}
}}}
Compilamos...
{{{
for i in ${INSTPATH}lib/*.jar; do
CLASSPATH=$CLASSPATH:$i;
done;
javac AbstractForm.java
java -cp .:$CLASSPATH org.mozilla.javascript.tools.jsc.Main -extends=AbstractForm ContactForm.js
}}}
Para muestra del ''buen'' funcionamiento del invento, veamos una demo..
All People
Edit Person
Asi, la idea es tener un entorno de desarrollo [[Server Side JavaScript]] que compita con helma o lazlo para citar los frameworks más famosos.
Con esto siento como me acerco al santo grial de la programación ajax....
Para echarle un vistazo a las fuentes: [[Página del proyecto|/doc]]