Dic 24 2008

AjaxSwing (parte I)

Categoría: DAD,InformáticaMiguel Angel @ 1:40

ajaxswing2Vía The server side encuentro una noticia sobre la última versión de la librería AjaxSwing (2.3). Lo que nos proponen la gente de CreamTec sigue la linea de GWT pero, como ellos mismos dicen, con algunos matices.

La característica principal es que, en tiempo de ejecución, se pueden convertir aplicaciones Swing en paginas HTML y código Javascript. Esto representa una gran ventaja ya que, en teoría, todas las aplicaciones cliente desarrolladas hasta el momento se podrían convertir en aplicaciones Web. Bueno, todos sabemos que este tipo de afirmaciones hay que tomárselas con calma.

Como estas cosas tengo que verlas con mis propios ojos y no me valen las demos, he invertido unas horas de mi vida en desplegar y probar el framework.

Antes de nada hay que comprobar que en la maquina está instalado Java (como mínimo en la versión 1.4).

El framework se encuentra disponible para su descarga, previo registro, en este enlace. Existen dos opciones de descarga: Windows Installer (siguiente, siguiente, …) y Zip (framework disponible para varias plataformas). En este post me voy a centrar en la opción fácil, Windows Installer. Importante: la ruta hacia el directorio de instalación no debe contener espacios. Por ejemplo, C:\Archivos de programa\AjaxSwing\ no es válida. Yo lo he instalado en el directorio (AJAXSWING_HOME) por defecto: C:\AjaxSwing2.3.0

Una vez realizada la instalación hay que lanzar la consola de administración… Inicio->Programas->AjaxSwing2.3.0->AjaxSwing Console y, una vez arrancada esta, hacer lo propio con el servidor Web (Tomcat). Para ello se pulsa en el botón «Start Server».

Desde ese momento tendremos un servidor Tomcat ejecutándose y esperando peticiones en el puerto 8040. Y esta es una de las primeras cosas que me ha sorprendido, incluye un Tomcat listo para funcionar. Sin complicaciones y sin necesidad de estar configurando un servidor para que utilice AjaxSwing. Por cierto, en AJAXSWING_HOME\tomcat\ se encuentra la estructura de directorios de Tomcat, de tal forma que en webapps se pueden desplegar todas las aplicaciones web que se deseen. Por supuesto, se puede cambiar el puerto 8040 por el clásico 8080 de Tomcat modificando el fichero de configuración. Los firewall no dejan pasar una.

De momento sólo se ha instalado AjaxSwing y se ha iniciado la consola y el Tomcat. Todavía falta «transformar» nuestras aplicaciones GUI en aplicaciones Web. En el siguiente fichero se encuentra la aplicación que voy a utilizar, ajaxswinggui.jar.

En la consola de AjaxSwing se lanza el asistente de configuración de la nueva aplicación Web que se generará a partir de la GUI. Para ello se pulsa el botón «App Wizard».

La primera de las pestañas nos solicita el nombre de la nueva aplicación. Se selecciona «New Application» y se introduce el texto «AjaxSwingGUI».

new-edit

La segunda de las pestañas nos solicita: el nombre de la clase que contiene el main (AjaxSwingGUI) y el fichero .jar que contiene la aplicación.

aplication-properties

La tercera, y última, nos pide que seleccionemos si se quiere compartir la maquina virtual entre peticiones o utilizar una por petición (esta opción es la recomendable en entornos de producción). Se deja «InProcess in shared JVM».

web-properties

Se pulsa en finalizar y nos pide confirmación para guardar el fichero de propiedades y probar la aplicación. A mi no me ha cargado la aplicación a la primera (al terminar el asistente). He tenido que ir al menú de la consola y seleccionar View->AjaxSwingGUI.

Bueno, hasta aqui la primera entrada de este pequeño tutorial sobre AjaxSwing. En la siguiente pondré como añadir AjaxSwing a un servidor Tomcat ya instalado y, cuando vuelva a la Universidad, probaré conexiones con bases de datos, uso en entorno real y temas de seguridad.

P.D.: prometo una entrada sobre Google Web Toolkit en cuanto finalice la serie «AjaxSwing» 🙂

Etiquetas: , , , , ,

21 Respuestas a “AjaxSwing (parte I)”

  1. Jordi dice:

    Buenas Miguel,
    Podrias arreglar el enlace para descargar el archivo jar, esque me dice que no existe.
    Por cierto muchas gracias por el articulo ya que llevo unos dias peleandome con ajaxswing y no he conseguido que funcione.
    Gracias de antemano

  2. Miguel Angel dice:

    Hola Jordi,

    Ya está arreglado el enlace. Muchas gracias por decírmelo.

    Espero que te sea de ayuda.

    Un saludo,

  3. Jordi dice:

    Hola de nuevo,

    Gracias por arreglar el enlace ya he probado el ejemplo y me funciona.

    Ahora solo queda que funcione con un ejemplo mio.

    Un saludo,

  4. Jordi dice:

    Buenas de nuevo,

    Me he bajado un archivo de prueba de la página de sun http://java.sun.com/docs/books/tutorial/uiswing/components/, concretamente el ButtonDemo. Lo he probado desde netBeans y funciona, pero cuando he creado el .jar para probar AjaxSwing me sale «Failed to load Main-Class manifest attribute from c\…..».

    Sabes a que es devido? ya se que no tiene nada que ver con tu post pero yo no tengo ni idea y si puedieras ayudarme te estaria muy agradecido.

    Gracias

  5. Miguel Angel dice:

    Has comprobado que en el jar existe un directorio META-INF y dentro un fichero MANIFEST.MF??

    Ahí debes de poner la clase que contiene el main. Algo parecido a lo que tengo yo en mi jar:

    Manifest-Version: 1.0
    Main-Class: AjaxSwingGUI

  6. Jordi dice:

    En el manifest no me sale la linea de Main-class, lo edito manualmente?

  7. Miguel Angel dice:

    Sí.

    Aunque yo probaría a generar el jar desde netbeans. En algun momento te tiene que pedir la clase que contiene el main

  8. Jordi dice:

    Bueno esque ya lo he generado desde netBeans y no me lo ha pedido, la aplicacion consta de una clase solo. Es una aplicacion muy simple con tres botones y ya esta.

  9. Jordi dice:

    Ya lo solucioné lo del jar, lo que tenía era una clase no un proyecto por eso no me iba. Ahora lo que me pasa es que el ajaxswing no hace la conversion. Le pongo en mainclass «components.ButtonDemo» y el archivo jar en el CLASSPATH y no me va, en cambio con el ejemplo que me descarge de tu blog si. Sabes a que puede ser devido?
    Siento ser tan pesado
    Gracias

  10. Miguel Angel dice:

    Has comprobado que el jar se ejecuta correctamente?

    Antes de utilizar el jar en ajaxswing comprueba que se ejecuta como una aplicación

Dejar una respuesta