Ejecutando aplicaciones GWT en Eclipse

17/10/2006

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 Responses to “Ejecutando aplicaciones GWT en Eclipse”

  1. Douglas Says:

    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. rubensa Says:

    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. Federico Says:

    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. […] Debido a los comentarios y dudas surgidos a raiz de mi anterior entrada “Ejecutando aplicaciones GWT en Eclipse“, he decidido publicar esta nueva con un breve resumen del GWT que incluye una serie de enlaces a documentación, tutoriales, herramientas, etc.. […]

  7. rubensa Says:

    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.

  8. CESAR ALVAREZ Says:

    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

  9. rubensa Says:

    Hola Cesar

    Supongo que te refieres a JSF (Java Server Faces) y no a JFS (Journaling File System).

    Te aconsejo que le eches un ojo al proyecto G4jsf. Se trata de un proyecto Open Source derivado del Ajax2jsf y que te permite construir componentes JSF en GWT.

    En The Server Side (http://www.theserverside.com/tt/articles/article.tss?l=GWTandJSF) tienes un tutorial al respecto.

  10. marcio Says:

    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

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

  11. marcio Says:

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

  12. Casidiablo Says:

    Te recomiendo esta web con documentación de Google Web Toolkit en español:

    http://esgooglewebtoolkit.blogspot.com/

    Saludos!

  13. rubensa Says:

    Gracias por la info Casidiablo. No conocía la página (imagino que aún no la habías creado cuando escribí el artículo🙂. La he añadido a la lista de enlaces de interés del artículo introductorio a GWT.

  14. Filomon Says:

    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…

  15. max Says:

    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

  16. max Says:

    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.-

  17. Sergio Says:

    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?

  18. Harto Says:

    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.

  19. Harto Says:

    Se me olvido poner el classpath:

  20. Diego Says:

    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

  21. michel Says:

    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

  22. michel Says:

    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)

  23. michel Says:

    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


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: