Eclipse · Frameworks · Recetas

Ejecutando aplicaciones GWT en Eclipse

GWT Beta
Siguiendo los pasos de creación e importación de un proyecto Google Web Toolkit en Eclipse nos podemos encontrar que a la hora de ejecutar/depurar no se crea una configuración adecuada que nos permita realizar dicha ejecución/depuración de modo sencillo integrado con el propio Eclipse.

Estos son los pasos a seguir para solucionarlo:

  • Con nuestro proyecto ya importado y seleccionado, ir a: «Run» –> «Debug…» (o «Run…»)
  • Seleccionar «Java Application» y con el botón derecho «New«
  • En «Name» introducimos, por ejemplo, el nombre de nuestra aplicación
  • En «Project» seleccionamos nuestro proyecto
  • En «Main class» escribimos «com.google.gwt.dev.GWTShell» (sin las comillas)
  • Vamos a la pestaña «Arguments» e introducimos algo similar a esto:

    -out www com.mycompany.MyApplication/MyApplication.html

    El valor adecuado para nuestra aplicación lo podemos ver en el fichero «nombreProyecto-shell» que el GWT ha creado, por ejemplo:

    #!/bin/sh
    APPDIR=`dirname $0`;
    java -cp "$APPDIR/src:$APPDIR/bin:/opt/gwt-linux-1.1.10/gwt-user.jar:/opt/gwt-linux-1.1.10/gwt-dev-linux.jar" com.google.gwt.dev.GWTShell -out "$APPDIR/www" "$@" es.seresco.gwt.GoogleWebToolkit/GoogleWebToolkit.html;

  • Vamos a la pestaña «Classpath» y en «User Entries» añadimos al «default classpath» de nuestro proyecto (si no aparece pulsar en «Restore Default Entries») lo siguiente:
    • «Advanced…«, «Add folder» y elejimos la carpeta «src» de nuestro proyecto
    • «Add external JARs…» y buscamos la libería «gwt-dev-linux.jar» (o «gwt-dev-windows.jar» en su caso) del directorio de instalación de GWT
  • Vamos a la pestaña «Environment«, seleccionamos «New«, en «Name» ponemos «GWT_EXTERNAL_BROWSER» (sin las comillas) y en «Value» el path al navegador Web del sistema, por ejemplo «/usr/bin/firefox«

Listo, ya estamos preparados para ejecutar/depurar nuestra aplicación usando Eclipse.

24 respuestas a “Ejecutando aplicaciones GWT en Eclipse

  1. Hola He seguido todos estos pasos pero no he podido hacer que me muestre los datos en la ventana que aparece creo que es porque la parte que dice arguments no esta muy clara (Lo estoy haciendo en Windows) No seria tan amable de enviar un ejemplo de configuracion para windows de un proyecto que imprime Hola mundo por ejemplo eso es lo unico que nesesito por que soy nuevo en Eclipse

  2. Hola Douglas

    No se a qué te refieres con un ejemplo de configuración para Windows, ya que la única diferencia entre la configuración para Windows y para Linux es que la librería «gwt-dev-linux.jar» se sustituye por «gwt-dev-windows.jar», siendo el resto igual (obviamente cambiarán los path de ubicación de instalación, pero nada más).

    Supongo que el problema lo tienes en que no sabes qué poner en «Arguments». Pues bien, lo único que tendrías que cambiar con respecto al ejemplo que te he puesto es «com.mycompany.MyApplication/MyApplication.html» donde deberás poner el paquete de tu clase (en vez del com.mycompany) y el nombre de la misma (en vez del MyApplication) así como el nombre de la página html de entrada (MyApplication.html).

    Es decir, que si a la hora de ejecutar el applicationCreator has puesto:

    applicationCreator -eclipse MiProyecto es.empresa.cliente.MiAplicacion

    Se habrá creado en el proyecto MiProyecto, un paquete llamado «es.empresa.cliente», otro «es.empresa.public» y dentro de «es.empresa.cliente» la clase «MiAplicacion.java» y en «es.empresa.public» el html «MiAplicacion.html». Entonces, en «Arguments» tendrás que poner:

    -out www es.empresa.MiAplicacion/MiAplicacion.html

    Espero que esto te aclare algo el tema.

  3. Gracias Ruben voy a probar con eso si o si me tendra que salir pues no habia hecho bien desde el comienzo creo y el projectCreator no me habia creado el html ni la carpeta public pero ahora lo probare Gracias

  4. Hola Ruben Tienes idea de como se hace peticiones al servidor con GWT? pues para que tengas una idea debo hacer un Juego de Ajedrez que al mover una pieza no me actualiza la pagina sino solo refleje el movimiento me entiendes y debo enviar y recibir jugadas..
    Saludos!!!
    Gracias…

  5. Hola ruben una pregunta yo recien comienzo con ajax y gwt. Decime de donde podria tener un ejemplo de codigo fuente? Necesito hacer un Stock-Facturacion. Agradeceria tu respuesta ya que no tengo idea de como empezar.

    Saludos

  6. Ya que parece que hay interés en el GWT, he publicado una nueva entrada con un breve resumen del GWT que incluye una serie de enlaces a documentación, tutoriales, herramientas, etc… Espero que os sirva de ayuda.

  7. Hola Ruben……….mii consulta es por que estoy haciendo un proyecto de inventarios……..pero me lo solicitan con JFS y WGT………podrias darme una psta como conjugar ambas herramientas?

    Gracias

  8. Mira hemos intentado cambiar los valores del «Argument» pero no tuvimos exito, si talvez pudieras explicarnos un poco mas amateur. Nuestro proyecto se llama Google, nuestro paquete se llama paquete, y nuestra clase se llama Ejemplo.java

    >>>>>>>>>>>>>>>>>>>

  9. Nota: que tipo de clase necesitamos crear, en nuestro caso le estamos pasando un JFrame con un jlabel y jtextfield,,,, tendremos problemas?

  10. Hola amigos, miren estoy empezando a programar en GWT, y pues tengo un problemita: ¿Como podria hacer que al actulizar mi pagina no regrese al menu principal? solamente deseo que se mantenga donde esta actualmente y no volver al menu principal. como controlar la url desde GWT, gracias por su ayuda…

  11. Buenos días:
    estoy con un error de compilación, que me gustaria resolver cuanto antes, alguien tiene idea de este error y como solucionarlo? Desde ya muchas gracias.-

    Saludos Maxi

    abajo agrego el error que me tira al compilar

    [gwtdoclet] 04/01/2008 16:13:51 xdoclet.XDocletMain start
    [gwtdoclet] INFO: Running
    [gwtdoclet] 04/01/2008 16:13:53 xdoclet.TemplateSubTask engineStarted
    [gwtdoclet] INFO: Generating output for ‘org.ampf.admin.ui.service.ModuleService2Impl’ using template file ‘jar:file:/C:/PROYECTOS/ampf/lib/gwt/xdoclet-gwt-module-0.5.jar!/xdoclet/modules/gwt/resources/remoteservice.xdt’.
    [gwtdoclet] 04/01/2008 16:13:53 xdoclet.XDocletMain start
    [gwtdoclet] INFO: Running
    [gwtdoclet] 04/01/2008 16:13:53 xdoclet.TemplateSubTask engineStarted
    [gwtdoclet] INFO: Generating output for ‘org.ampf.admin.ui.service.ModuleService2Impl’ using template file ‘jar:file:/C:/PROYECTOS/ampf/lib/gwt/xdoclet-gwt-module-0.5.jar!/xdoclet/modules/gwt/resources/asyncservice.xdt’.
    [gwtdoclet] 04/01/2008 16:13:53 xdoclet.XDocletMain start
    [gwtdoclet] INFO: Running
    [gwtdoclet] 04/01/2008 16:13:53 xdoclet.TemplateSubTask engineStarted
    [gwtdoclet] INFO: Generating output for ‘org.ampf.remesa.ui.consultaReposicion.client.ConsultaReposicion’ using template file ‘jar:file:/C:/PROYECTOS/ampf/lib/gwt/xdoclet-gwt-module-0.5.jar!/xdoclet/modules/gwt/resources/module.xdt’.
    [gwtdoclet] 04/01/2008 16:13:53 xdoclet.TemplateSubTask engineStarted
    [gwtdoclet] INFO: Generating output for ‘org.ampf.admin.usuarios.ui.consulta.client.ConsultaUsuarios’ using template file ‘jar:file:/C:/PROYECTOS/ampf/lib/gwt/xdoclet-gwt-module-0.5.jar!/xdoclet/modules/gwt/resources/module.xdt’.
    [gwtdoclet] 04/01/2008 16:13:53 xdoclet.TemplateSubTask engineStarted
    [gwtdoclet] INFO: Generating output for ‘org.ampf.remesa.ui.administracionMovimientoCaja.client.AgregarMovimientos’ using template file ‘jar:file:/C:/PROYECTOS/ampf/lib/gwt/xdoclet-gwt-module-0.5.jar!/xdoclet/modules/gwt/resources/module.xdt’.
    [gwtdoclet] 04/01/2008 16:13:53 xdoclet.TemplateSubTask engineStarted
    [gwtdoclet] INFO: Generating output for ‘org.ampf.caja.ui.administracion.client.Administracion’ using template file ‘jar:file:/C:/PROYECTOS/ampf/lib/gwt/xdoclet-gwt-module-0.5.jar!/xdoclet/modules/gwt/resources/module.xdt’.
    [gwtdoclet] 04/01/2008 16:13:53 xdoclet.TemplateSubTask engineStarted
    [gwtdoclet] INFO: Generating output for ‘org.ampf.caja.ui.transaccion.client.Transaccion’ using template file ‘jar:file:/C:/PROYECTOS/ampf/lib/gwt/xdoclet-gwt-module-0.5.jar!/xdoclet/modules/gwt/resources/module.xdt’.
    [gwtdoclet] 04/01/2008 16:13:53 xdoclet.TemplateSubTask engineStarted
    [gwtdoclet] INFO: Generating output for ‘org.ampf.main.ui.genericAbm.client.GenericAbm’ using template file ‘jar:file:/C:/PROYECTOS/ampf/lib/gwt/xdoclet-gwt-module-0.5.jar!/xdoclet/modules/gwt/resources/module.xdt’.
    [gwtdoclet] 04/01/2008 16:13:53 xdoclet.TemplateSubTask engineStarted
    [gwtdoclet] INFO: Generating output for ‘org.ampf.remesa.ui.movimientosDelDia.client.MovimientosDelDia’ using template file ‘jar:file:/C:/PROYECTOS/ampf/lib/gwt/xdoclet-gwt-module-0.5.jar!/xdoclet/modules/gwt/resources/module.xdt’.
    [gwtdoclet] 04/01/2008 16:13:53 xdoclet.TemplateSubTask engineStarted
    [gwtdoclet] INFO: Generating output for ‘org.ampf.caja.ui.liquidacion.cierre.client.Cierre’ using template file ‘jar:file:/C:/PROYECTOS/ampf/lib/gwt/xdoclet-gwt-module-0.5.jar!/xdoclet/modules/gwt/resources/module.xdt’.
    [gwtdoclet] 04/01/2008 16:13:53 xdoclet.TemplateSubTask engineStarted
    [gwtdoclet] INFO: Generating output for ‘org.ampf.mailing.ui.administracion.client.Administracion’ using template file ‘jar:file:/C:/PROYECTOS/ampf/lib/gwt/xdoclet-gwt-module-0.5.jar!/xdoclet/modules/gwt/resources/module.xdt’.
    [gwtdoclet] 04/01/2008 16:13:53 xdoclet.TemplateSubTask engineStarted
    [gwtdoclet] INFO: Generating output for ‘org.ampf.main.ui.valoresCambio.client.ValoresCambio’ using template file ‘jar:file:/C:/PROYECTOS/ampf/lib/gwt/xdoclet-gwt-module-0.5.jar!/xdoclet/modules/gwt/resources/module.xdt’.
    [gwtdoclet] 04/01/2008 16:13:53 xdoclet.TemplateSubTask engineStarted
    [gwtdoclet] INFO: Generating output for ‘org.ampf.remesa.ui.listadoGeneralRemesa.client.ListadoGeneralRemesa’ using template file ‘jar:file:/C:/PROYECTOS/ampf/lib/gwt/xdoclet-gwt-module-0.5.jar!/xdoclet/modules/gwt/resources/module.xdt’.
    [gwtdoclet] 04/01/2008 16:13:53 xdoclet.TemplateSubTask engineStarted
    [gwtdoclet] INFO: Generating output for ‘org.ampf.caja.ui.liquidacion.consulta.client.ConsultarLiquidaciones’ using template file ‘jar:file:/C:/PROYECTOS/ampf/lib/gwt/xdoclet-gwt-module-0.5.jar!/xdoclet/modules/gwt/resources/module.xdt’.
    [gwtdoclet] 04/01/2008 16:13:53 xdoclet.TemplateSubTask engineStarted
    [gwtdoclet] INFO: Generating output for ‘org.ampf.remesa.ui.administracionRemesa.client.AdministracionRemesa’ using template file ‘jar:file:/C:/PROYECTOS/ampf/lib/gwt/xdoclet-gwt-module-0.5.jar!/xdoclet/modules/gwt/resources/module.xdt’.
    [gwtdoclet] 04/01/2008 16:13:53 xdoclet.TemplateSubTask engineStarted
    [gwtdoclet] INFO: Generating output for ‘org.ampf.caja.ui.saldo.ajuste.client.Ajuste’ using template file ‘jar:file:/C:/PROYECTOS/ampf/lib/gwt/xdoclet-gwt-module-0.5.jar!/xdoclet/modules/gwt/resources/module.xdt’.
    [gwtdoclet] 04/01/2008 16:13:53 xdoclet.TemplateSubTask engineStarted
    [gwtdoclet] INFO: Generating output for ‘org.ampf.remesa.ui.cargaRemesa.client.CargaRemesa’ using template file ‘jar:file:/C:/PROYECTOS/ampf/lib/gwt/xdoclet-gwt-module-0.5.jar!/xdoclet/modules/gwt/resources/module.xdt’.
    [gwtdoclet] 04/01/2008 16:13:53 xdoclet.TemplateSubTask engineStarted
    [gwtdoclet] INFO: Generating output for ‘org.ampf.remesa.ui.busquedaRemesaParaPago.client.BusquedaRemesaParaPago’ using template file ‘jar:file:/C:/PROYECTOS/ampf/lib/gwt/xdoclet-gwt-module-0.5.jar!/xdoclet/modules/gwt/resources/module.xdt’.

    compileGwt:
    [javac] Compiling 425 source files to C:\PROYECTOS\ampf\.target\classes
    [javac] Note: Some input files use or override a deprecated API.
    [javac] Note: Recompile with -Xlint:deprecation for details.
    [javac] Note: Some input files use unchecked or unsafe operations.
    [javac] Note: Recompile with -Xlint:unchecked for details.
    [gwtcompile] Compiling org.ampf.admin.usuarios.ui.consulta.ConsultaUsuarios
    [gwtcompile] java.lang.NoSuchMethodError: org.eclipse.jdt.internal.compiler.CompilationResult.getErrors()[Lorg/eclipse/jdt/core/compiler/IProblem;
    [gwtcompile] at com.google.gwt.dev.jdt.AbstractCompiler$ICompilerRequestorImpl.acceptResult(AbstractCompiler.java:213)
    [gwtcompile] at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:417)
    [gwtcompile] at com.google.gwt.dev.jdt.AbstractCompiler$CompilerImpl.compile(AbstractCompiler.java:74)
    [gwtcompile] at com.google.gwt.dev.jdt.AbstractCompiler$CompilerImpl.compile(AbstractCompiler.java:162)
    [gwtcompile] at com.google.gwt.dev.jdt.AbstractCompiler$CompilerImpl.access$600(AbstractCompiler.java:61)
    [gwtcompile] at com.google.gwt.dev.jdt.AbstractCompiler.compile(AbstractCompiler.java:430)
    [gwtcompile] at com.google.gwt.dev.jdt.AstCompiler.getCompilationUnitDeclarations(AstCompiler.java:117)
    [gwtcompile] at com.google.gwt.dev.jdt.TypeOracleBuilder.build(TypeOracleBuilder.java:354)
    [gwtcompile] at com.google.gwt.dev.cfg.ModuleDef.getTypeOracle(ModuleDef.java:294)
    [gwtcompile] at com.google.gwt.dev.GWTCompiler.distill(GWTCompiler.java:321)
    [gwtcompile] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    [gwtcompile] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    [gwtcompile] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    [gwtcompile] at java.lang.reflect.Method.invoke(Method.java:597)
    [gwtcompile] at dk.contix.ant.gwt.GWTCompileTask.execute(GWTCompileTask.java:197)
    [gwtcompile] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
    [gwtcompile] at org.apache.tools.ant.Task.perform(Task.java:364)
    [gwtcompile] at org.apache.tools.ant.Target.execute(Target.java:341)
    [gwtcompile] at org.apache.tools.ant.Target.performTasks(Target.java:369)
    [gwtcompile] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
    [gwtcompile] at org.apache.tools.ant.Project.executeTarget(Project.java:1185)
    [gwtcompile] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
    [gwtcompile] at org.apache.tools.ant.Project.executeTargets(Project.java:1068)
    [gwtcompile] at org.apache.tools.ant.Main.runBuild(Main.java:668)
    [gwtcompile] at org.apache.tools.ant.Main.startAnt(Main.java:187)
    [gwtcompile] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:246)
    [gwtcompile] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:67)
    Buildfile: build.xml

  12. Hola a todos en base a mi consulta anterior, el problema era la version del ANT, ahora uso ant_1.7 y no tiro mas ese error, ojala que les sirva.-

  13. Agrege solamente el paso:
    «Vamos a la pestaña “Environment“, seleccionamos “New“, en “Name” ponemos “GWT_EXTERNAL_BROWSER” (sin las comillas) y en “Value” el path al navegador Web del sistema, por ejemplo “/usr/bin/firefox“»

    Pero en host mode firefox no se abre, que pasa?

  14. Tengo un problema que no soy capaz de resolver. Al compilar me da el siguiente error:

    The archive: D:/gwt/gwt-dev-windows.jar which is referenced by the classpath, does not exist.

    Sin embargo, en el mi classpath no aparece esa ruta. ¿Cuál es el problema? Estoy ya bastante desesperado.

  15. Que tal, al hacer los pasos me sale el siguiente error…

    java.lang.UnsatisfiedLinkError: Can’t load library: D:\Proyectos\PruebaMapas\lib/swt-win32-3235.dll
    at java.lang.ClassLoader.loadLibrary(Unknown Source)
    at java.lang.Runtime.load0(Unknown Source)
    at java.lang.System.load(Unknown Source)
    at org.eclipse.swt.internal.Library.loadLibrary(Library.java:132)
    at org.eclipse.swt.internal.win32.OS.(OS.java:18)
    at org.eclipse.swt.widgets.Display.(Display.java:125)
    at com.google.gwt.dev.GWTShell.(GWTShell.java:264)
    Exception in thread «main»

    Me podrian ayudar por favor… Gracias

  16. tengo un problema con la compilación de MiAplicacion.
    el error es el siguiente:
    «unable to load mozilla for hosted mode»
    java.lang.UnsatisfiedLinkError: /home/michel/Documentos/gwt-linux-1.5.3/mozilla-1.7.12/libxpcom.so: libtdc++.so.5: no se puede abrir el archivo de objeto compartido: no existe el fichero directorio
    at java.lang.Runtime._load(libgcj.so.81)
    at java.lang.Runtime.load(libgcj.so.81)
    at java.lang.System.load(libgcj.so.81)
    at com.google.gwt.dev.shell.moz.MozillaInstall.load(MozillaInstall.java:190)
    at com.google.gwt.dev.BootStrapPlatform.init(BootStrapPlatform.java:49)
    at com.google.gwt.dev.GWTShell.main(GWTShell.java:354)
    si saben como solucionarlo manden la respuesta gracias

  17. el erro es el siguente para los que utilizan un sistema operativo linux.
    esta librería es el debager libtdc++.so.5 en algunos esta instalado libtdc++.so.6 solo ahy que instalar este (libtdc++.so.5)

  18. hola tengo otro problema cuando compilo mi aplicacion abre dos ventanas pero en la que se debe mostrar la aplicacion no aparecena (en balanco) si saben a que se debe manadenme la respuesta porfa

Replica a Federico Cancelar la respuesta