Aplicación en Grails que se reinicia sin parar

Hace un rato me ha ocurrido algo muy curioso con grails. He parado el servidor y al volver a ejecutar grails run-app una vez que terminaba de arrancar se ponía a recompilar unas clases y volvía a arrancar en un bucle infinito.

Server running. Browse to http://localhost:8080/
  [groovyc] Compiling 1 source file to /home/ivan/workspace-sts/myApp/target/classes
  [groovyc] Compiling 1 source file to /home/ivan/workspace-sts/myApp/target/classes
   [delete] Deleting directory /home/ivan/.grails/1.3.7/projects/myApp/tomcat
Running Grails application..
2011-10-17 16:42:19,231 [main] INFO  spring.BeanBuilder  - [RuntimeConfiguration] Configuring data source for environment: DEVELOPMENT

He ejecutado varias veces grails-clean por si se había quedado algo raro pero seguía sin funcionar. Al final, la solución es arrancar con grails run-app –verboseCompile (cuidado que son dos guiones) para obtener información adicional. Así, una vez arrancado muestra las clases que intenta recompilar (en negrita):

Server running. Browse to http://localhost:8080/
  [groovyc] Compiling 1 source file to /home/ivan/workspace-sts/myApp/target/classes
  [groovyc] /home/ivan/workspace-sts/myApp/src/groovy/com/auth/MySuccessHandler.groovy
  [groovyc] Compiling 1 source file to /home/ivan/workspace-sts/myApp/target/classes
  [groovyc] /home/ivan/workspace-sts/myApp/src/groovy/com/auth/MySuccessHandler.groovy
   [delete] Deleting directory /home/ivan/.grails/1.3.7/projects/myApp/tomcat
Running Grails application..

Era una clase de una prueba anterior, así que la he borrado y todo se ha solucionado 🙂

Anuncios

Error en Eclipse “Specified VM install not found” solucionado (solved)

Desde que añadí el java de Sun desde el repositorio de paquetes de Ubuntu, en vez de tenerlo en mi directorio /opt, creo voy a tener este problema de manera periódica, pero por lo menos ya se arreglarlo.

Hoy me encuentro con este error al ejecutar el build de mi tarea ant:

Specified VM install not found: type Standard VM, name java-6-sun-1.6.0.22

Y por más que miraba y remiraba en Preferences>Java>Installed JREs, allí no había más que una JDK, la java-6-sun-1.6.0.24.

Al final encontré la solución en este post

http://www.artima.com/forums/flat.jsp?forum=1&thread=85315

Try deleting these files:

…/.metadata/.plugins/org.eclipse.debug.core/.launches/*.launch

Roger

Con el eclipse cerrado añadiría yo.

Y funcionó…

Si es que al final era una tontería. 🙂

Actualización 11/03/2011

A través de los comentarios Julio nos deja este consejo:

“Creo que hay otra forma…

Al instalar la JDK vía repos de Ubuntu, si no me equivoco, las JVM se instalan en /usr/lib/jvm/java-x.y-z; cada vez que se actualiza, el “x.y.z” cambia. Para evitar los problemas que esto conlleva, se crea un enlace en “/usr/lib/jvm/java-x” a la última versión, por lo que si la JRE en Eclipse la configuras contra el enlace te ahorras este problema.”

Instalación plugin JBPM en Eclipse

Alfresco y sus Workflows ha motivado que queramos instalar el plugin de JBPM en nuestro Eclipse

Alfresco embeds the JBoss jBPM process engine which itself provides the jPDL Process Definition Language.

Qué es JBPM

JBoss jBPM is a flexible, extensible framework for process languages. jPDL is one process language that is build on top of that common framework. It is an intuitive process language to express business processes graphically in terms of tasks, wait states for asynchronous communication, timers, automated actions,… To bind these operations together, jPDL has the most powerful and extensible control flow mechanism.

La sección del manual de Alfresco es bastante clara, aquí, pero no indica correctamente qué bajar y cómo instalarlo.

En esta entrada intentaremos indicar cómo se consigue instalar el plugin de JPBM-jPDL en Eclipse, también conocido como “designer”

  1. Ir a la página de download
[update 23/02/2012] Gracias a Eloweyn se actualiza el link de descarga

y bajarse:

  • (recomendado) jPDL Suite: lo tiene todo. El plugin está dentro del directorio “designer”.

  • (opcional) jBPM GPD: solo el plugin de eclipse para diseñar, pero necesitamos todo

  1. Si hemos bajado Suite, descomprimir el fichero bajado en un directorio definitivo, como /opt/. En otro caso, uno temporal.
  2. Acceder al directorio, por ejemplo:  $ cd /opt/share/jbpm-jpdl-3.2.2/

  3. Acceder al directorio “designer”.

  4. Acceder al directorio eclipse.

  5. Copiar todo lo que hay dentro (plugins, etc) a nuestro directorio de eclipse, donde también están las mismas carpetas, sobreescribiendo con la libertad que uno prefiera. De esta manera se copiará el plugin en nuestro eclipse.

  6. Reinicar eclipse si es el caso.

  7. Y ya tenemos nuestro plugin.

Para usarlo, bonito tutorial en jBoss, pero está incompleto.

  1. New->Project… JBPM.
  2. Nombre del proyecto
  3. Como al principio no tendremos la ubicación del Core JBPM, nos la pide, por ejemplo: /opt/share/jbpm-jpdl-3.2.2/
  4. Y ya está!

Empezar a trabajar con el API Java de OpenOffice.org

Esto si que es una tontería, pero acabo de perder media hora buscandolo, a si que…

Para poder trabajar con el API de Java de OpenOffice.org es necesario utilizar las siguientes bibliotecas: juh.jar, jurt.jar, ridl.jar y unoil.jar.

Tras un buen rato buscandolas por internet, decargando versiones del sdk de OOo, etc, resulta que están incluidas en el OpenOffice.org. No en un paquete de desarrollo, sino en el propio sistema ofimático.

Desplegar una aplicación GWT en Tomcat

1- Conseguir que funcione correctamente en el entorno de GWT

2- Compilarla, bien mediante el comando aplicacion-compile, bien mediante el botón de compilación del propio entorno GWT

3- En el tomcat, crear la siguiente estructura de directorios (en general está en /var/lib/tomcat5.5/webapps):

webapps/Aplicacion
webapps/Aplicacion/WEB-INF
webapps/Aplicacion/WEB-INF/classes
webapps/Aplicacion/WEB-INF/lib

4- Copiar todos los ficheros del directorio de la aplicación/www/paquete.aplicacion/ a webapps/Aplicacion

Ej:

cp -R /home/user/java/workspace/App/www/es.prueba.App/* /var/lib/tomcat5.5/webapps/App

5- Copiar el contenido del directorio de la aplicación/bin a webapps/Aplicacion/WEB-INF/classes

Ej:

cp -R /home/user/java/workspace/App/bin/com /var/lib/tomcat5.5/webapps/WEB-INF/classes/com

6- Crear el fichero  webapps/Aplicacion/WEB-INF/web.xml con el siguiente contenido:

<web-app>
   <servlet>
      <servlet-name>Servicio</servlet-name>
      <servlet-class>es.prueba.Servicio</servlet-class>
   </servlet>
   <servlet-mapping>
      <servlet-name>Servicio</servlet-name>
      <url-pattern>/Servicio</url-pattern>
   </servlet-mapping>
</web-app>

Los valores son los mismos que los definidos en el fichero gwt.xml de la aplicación

7- Aquí llega el truco. hace falta copiar las bibliotecas de GWT gwt-servlet.jar y gwt-user.jar al directorio webapps/Aplicacion/WEB-INF/lib.  Peeeero gwt-user.jar incluye las librerías javax, que por temas de licencias están prohibidas en tomcat. Por lo tanto, hay que editar el contenido de ese jar y eliminar el directorio javax. Por ejemplo, con el ark es fácil.

Y ya debería funcionar. Al menos, con proyectos simples, funciona 😉