Problemas con JRebel

140 views
Skip to first unread message

christian alexander tello espinoza

unread,
Jan 6, 2014, 10:57:57 AM1/6/14
to madr...@googlegroups.com
Hola soy nuevo en el grupo ojala me puedan ayudar con este problema. Estoy usando JRebel para refrescar los cambios de mi aplicación sin deployar pero no me funciona ya que igual tengo que deployar para ver los cambios.

Mi configuración es:

Netbeans 7.4
JDK7
glassfish 4
Maven

Es una aplicación empresarial con los siguientes módulos:

1 EJB
2 Wars

Realice las siguientes configuraciones:

Instale el plugin de JRebel para netbeans
agregue los siguientes parametros a la configuracion de la jvm desde el administrador de glassfish
-javaagent:C:/Users/Christian/AppData/Roaming/NetBeans/7.4/jrebel/jrebel.jar
-noverify
Agregue los rebel.xml a todos los módulos incluido el ear
Luego le doy click al botón de JRebel y lanzo la aplicación
Modifico el titulo en el xhtml, guardo, refresco la pagina y nada no cambia nada. También modifique código en un bean y no cambia nada la lógica, no se si faltara configurar algo mas.

Gracias de antemano por cualquier ayuda me puedan dar.

Jose San Leandro

unread,
Jan 6, 2014, 3:09:27 PM1/6/14
to madr...@googlegroups.com
Hola,

Yo no uso JRebel desde el IDE, porque en realidad el contenedor con el que trasteo lo configuro externamente por Puppet y me gusta tenerlo independiente del IDE.
Dicho esto, te recomiendo que trates de ir paso a paso.

En primer lugar, añade

-Drebel.remoting_plugin=true -Drebel.log.file=ruta-fichero-log -Drebel.log.stdout=true

a la configuración de tu glassfish. Yo no he tenido que poner el -noverify.

Arranca tu glassfish y comprueba que salen los logs de jrebel en la consola o fichero de log de glassfish.
Si no sale nada, no está encontrando el fichero jrebel.jar, o bien debe estar quejándose de algún problema al arrancar.

Si te salen los logs de los plugins de jrebel activos, pero aún así no pilla los cambios, el problema está en los rebel.xml. O no los encuentra o las rutas dentro de los rebel.xml están mal. Ten en cuenta que no pueden ser relativas, aunque puedes hacer que referencien a variables de entorno.

Por ejemplo, jrebel en mi caso, para una aplicación war, es:

<?xml ve<?xml version="1.0" encoding="UTF-8"?>                                                                                                                                
<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.zeroturnaround.com" xsi:schemaLocation="http://www.zeroturnaround.com http://www.zeroturnaround.com/alderaan/rebel-2_0.xsd">                                                                                                                            
                                                                                                                                                                     &nb sp;
    <classpath>                                                                                                                                                       
        <dir name="${devroot}/app/src/main/resources">                                                                                           
        </dir>                                                                                                                                                        
        <dir name="${devroot}/app/target/generated-sources">                                                                                     
            <include name="**/*.properties"/>                                                                                                                         
            <include name="**/*.xml"/>                                                                                                                                
        </dir>                                                                                                                                                        
        <dir name="${devroot}/app/target/classes">                                                                                               
        </dir>                                                                                                                                                        
    </classpath>                                                                                                                                                      
                                                                                                                                                                     &nb sp;
    <web>                                                                                                                                                             
        <link target="/">                                                                                                                                             
            <dir name="${devroot}/app/src/main/webapp">                                                                                          
            </dir>                                                                                                                                                    
        </link>                                                                                                                                                       
    </web>                                                                                                                                                            
                                                                                                                                                                     &nb sp;
</application>

Y después basta añadir un -Ddevroot=ruta-directorio-padre al servidor al arrancar.

Con JRebel en funcionamiento y escupiendo al log, va avisando de los cambios que encuentra en los .class.

Los jsp y los ficheros estáticos a veces le cuesta y ante la duda reinicio. Aún en ese caso (no muy frecuente), me ahorro el deployment.

Una vez consigas que en modo stand-alone la combinación glassfish +jrebel +  aplicación funcione, me metería con el plugin de JRebel para NetBeans, pero no antes.

Yo me atasqué en su día por pensar que el fichero era jrebel.xml y no rebel.xml :)

Saludos,
Jose.
--
Has recibido este mensaje porque estás suscrito al grupo "MadridJUG" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a madridjug+...@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.

Gonzalo Gómez García

unread,
Jan 7, 2014, 2:05:58 PM1/7/14
to madr...@googlegroups.com
Hola,
Yo delego la generaciï¿œn del rebel.xml al plugin de Maven de JRebel.

<plugin>
<groupId>org.zeroturnaround</groupId>
<artifactId>jrebel-maven-plugin</artifactId>
<executions>
<execution>
<id>generate-rebel-xml</id>
<phase>process-resources</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<relativePath>../</relativePath>
<rootPath>$${sources.root}</rootPath>
</configuration>
</plugin>

Lo ï¿œnico que se tiene que configurar es rootPath (la variable de entorno
en el arranque del servidor de donde se obtiene el directorio de los
fuentes del proyecto) y relativePath (path del proyecto respecto a la ruta
de rootPath. Para proyectos maven multi-mï¿œdulo tienes que poner "../" y
para los que no sean multi-mï¿œdulo "./")
Sï¿œlo es necesario que lo aï¿œadas al WAR. En le EAR no tiene sentido.
Espero que te ayude.
Saludos



En Mon, 06 Jan 2014 21:09:27 +0100, Jose San Leandro
<jose.sa...@ventura24.es> escribiᅵ:

> Hola,
>
> Yo no uso JRebel desde el IDE, porque en realidad el contenedor con el
> que trasteo lo configuro externamente por Puppet y me gusta tenerlo
> independiente del IDE.
> Dicho esto, te recomiendo que trates de ir paso a paso.
>
> En primer lugar, aï¿œade
>
> -Drebel.remoting_plugin=true -Drebel.log.file=ruta-fichero-log
> -Drebel.log.stdout=true
>
> a la configuraciï¿œn de tu glassfish. Yo no he tenido que poner el
> -noverify.
>
> Arranca tu glassfish y comprueba que salen los logs de jrebel en la
> consola o fichero de log de glassfish.
> Si no sale nada, no estᅵ encontrando el fichero jrebel.jar, o bien debe
> estar quejï¿œndose de algï¿œn problema al arrancar.
>
> Si te salen los logs de los plugins de jrebel activos, pero aᅵn asᅵ no
> pilla los cambios, el problema estᅵ en los rebel.xml. O no los encuentra
> o las rutas dentro de los rebel.xml estï¿œn mal. Ten en cuenta que no
> pueden ser relativas, aunque puedes hacer que referencien a variables de
> entorno.
>
> Por ejemplo, jrebel en mi caso, para una aplicaciï¿œn war, es:
>
> <?xml ve<?xml version="1.0"
> encoding="UTF-8"?>
>
> <application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns="http://www.zeroturnaround.com"
> xsi:schemaLocation="http://www.zeroturnaround.com
> http://www.zeroturnaround.com/alderaan/rebel-2_0.xsd">
>
>
> <classpath>
>
> <dir
> name="${devroot}/app/src/main/resources">
>
> </dir>
>
> <dir
> name="${devroot}/app/target/generated-sources">
>
> <include
> name="**/*.properties"/>
>
> <include
> name="**/*.xml"/>
>
> </dir>
>
> <dir
> name="${devroot}/app/target/classes">
>
> </dir>
>
> </classpath>
>
>
> <web>
>
> <link
> target="/">
>
> <dir
> name="${devroot}/app/src/main/webapp">
>
> </dir>
>
> </link>
>
> </web>
>
>
> </application>
>
> Y despuï¿œs basta aï¿œadir un -Ddevroot=ruta-directorio-padre al servidor al
> arrancar.
>
> Con JRebel en funcionamiento y escupiendo al log, va avisando de los
> cambios que encuentra en los .class.
>
> Los jsp y los ficheros estï¿œticos a veces le cuesta y ante la duda
> reinicio. Aï¿œn en ese caso (no muy frecuente), me ahorro el deployment.
>
> Una vez consigas que en modo stand-alone la combinaciï¿œn glassfish
> +jrebel + aplicaciï¿œn funcione, me meterï¿œa con el plugin de JRebel para
> NetBeans, pero no antes.
>
> Yo me atasquᅵ en su dᅵa por pensar que el fichero era jrebel.xml y no
> rebel.xml :)
>
> Saludos,
> Jose.
>
> On 01/06/2014 04:57 PM, christian alexander tello espinoza wrote:
>> Hola soy nuevo en el grupo ojala me puedan ayudar con este problema.
>> Estoy usando JRebel para refrescar los cambios de mi aplicaciï¿œn sin
>> deployar pero no me funciona ya que igual tengo que deployar para ver
>> los cambios.
>>
>> Mi configuraciï¿œn es:
>>
>> Netbeans 7.4
>> JDK7
>> glassfish 4
>> Maven
>>
>> Es una aplicaciï¿œn empresarial con los siguientes mï¿œdulos:
>>
>> 1 EJB
>> 2 Wars
>>
>> Realice las siguientes configuraciones:
>>
>> Instale el plugin de JRebel para netbeans
>> agregue los siguientes parametros a la configuracion de la jvm desde
>> el administrador de glassfish
>> -javaagent:C:/Users/Christian/AppData/Roaming/NetBeans/7.4/jrebel/jrebel.jar
>> -noverify
>> Agregue los rebel.xml a todos los mï¿œdulos incluido el ear
>> Luego le doy click al botï¿œn de JRebel y lanzo la aplicaciï¿œn
>> Modifico el titulo en el xhtml, guardo, refresco la pagina y nada no
>> cambia nada. Tambiï¿œn modifique cï¿œdigo en un bean y no cambia nada la
>> lï¿œgica, no se si faltara configurar algo mas.
>>
>> Gracias de antemano por cualquier ayuda me puedan dar.
>> --
>> Has recibido este mensaje porque estï¿œs suscrito al grupo "MadridJUG"
>> de Grupos de Google.
>> Para anular la suscripciï¿œn a este grupo y dejar de recibir sus correos
>> electrï¿œnicos, envï¿œa un correo electrï¿œnico a
>> madridjug+...@googlegroups.com.
>> Para obtener mï¿œs opciones, visita
>> https://groups.google.com/groups/opt_out.
>


--
Gonzalo Gï¿œmez Garcï¿œa
+34 678 937 832

ARCADIA CONSULTING
Centro Europeo de Empresas e Innovaciï¿œn
Ctra. Madrid-Irï¿œn Km. 244,8 - 09007 Burgos
www.arcadiaconsulting.es
Reply all
Reply to author
Forward
0 new messages