resin-installation-problem
Resin Installation Problem
Short description
Starting with Resin 3.1 we longer support launching Resin with httpd.exe. This is because we’re not able to integrate with the httpd.exe startup method. This might change in the future.
Instead of starting Resin with httpd.exe you’re required to start it with a commandline from the Resin installation directory as:
java -noverify -javaagent:c:\javarebel.jar -jar lib\resin.jar.
Symptoms of failed installation
The following lines are contained in the Resin server console:
#############################################################
JavaRebel Resin installation problem!
See http://www.zeroturnaround.com/resin-problem/
or consult with the installation manual for correct
JavaRebel installation with Resin server.
#############################################################
Problem description
Resin servers (since 3.1) are started and monitored by a separate Resin watchdog process. The watchdog periodically checks the health of the Resin server and restarts the instance if it becomes unresponsive.
Resin server uses a custom system class loader com.caucho.loader.SystemClassLoader.
JavaRebel is able to instrument this class only before the Resin server is launched by patching the watchdog process.
If you start Resin with JavaRebel by using the httpd.exe with custom arguments it only enables JavaRebel on the Resin server not on the watchdog process. Therefore the system class loader is left unchanged and JavaRebel is unable to reload classes. In this case JavaRebel outputs the message “JavaRebel Resin installation problem!…” described above.
Solution
To start Resin server with JavaRebel use the following command line:
java -noverify -javaagent:c:\javarebel.jar -jar lib\resin.jar
This enables JavaRebel to instrument watchdog process as well as the Resin server itself. Don’t worry if you see the JavaRebel banner twice. This is correct as there are two separate JVMs running.


