JEE Development using JRebel with IBM WebSphere (WAS) 6.1 and RAD 7.0
I want to share my experiences with JRebel (http://www.zeroturnaround.com/jrebel/). If you need some neutral information about this product to ease development with J2EE / JEE applications and application servers, this blog entry is for you!
Problems with JEE Application Servers
If you develop with WAS, no matter if it is version 5 / 6 / 6.1 / 7, deployment takes a very long time. Even changing a single line of code (e.g. to add a System.out.println) takes about 15 minutes in our project for publishing the changes, because you always have to do a build and redeployment. So, sometimes you have to wait 50 percent of your working time until WebSphere is ready again.
Other application servers have the same problem, although they are probably not as lame as WebSphere.
What is JRebel?
JRebel is a product which promises to solve this problem. You do not need to build and redeploy. You save your class, the IDE compiles the class, and you can see the changes within one second!
If you want to understand how it works technically (you do not need this knowledge to use the product), you can read a detailed explanation here: http://www.zeroturnaround.com/jrebel/faq/#How_does_jrebel_work
Features of JRebel
JRebel supports all important application servers such as WebSphere, Weblogic, Tomcat, Glassfish and so on. Besides allowing simple changes such as adding methods, fields, classes or annotations, you can also change EJB interfaces, JSPs, JSF and JPA code, XML config files and so on. Spring, Hibernate, JBoss Seam and some further Web-Frameworks are also supported. So, JRebel is very powerful.
IDE-Plugins are available for all major Java IDEs: Eclipse, NetBeans and IntelliJ IDEA.
All features of JRebel are described and compared to other solutions at http://www.zeroturnaround.com/jrebel/comparison/
Does JRebel work?
I can confirm you: JRebel works as promised! You can save plenty of developtment time. I would never ever think about developing a J2EE / JEE project without JRebel (especially if WebSphere is the used application server).
I was very sceptical before trying out JRebel by myself. My colleagues also did not trust the promises at the product’s website, so I had to give them a live demo
You even can debug using JRebel. So you can start the application server in debugging mode, make some changes, set a breakpoint, and see the changes immediately.
The standard edition costs 189 USD for one year per developer. Support costs additional 50 USD. The support is fantastic! You get very quick responses with detailed explanations.
Open source and Scala projects do not have to pay any license costs.
It is excellent value for money! You can save a lot of time by investing this little amount of money.
The installation is very easy. JRebel is installed (and also removed) within 10 minutes. You just have to add a JAR file and add one line of code to the configuration of the application server.
My main criticism: The documentation is bad. Someone of the JRebel guys should extend and improve the documentation!
There are some pitfalls which I had to resolve:
- The application server runtimes do not use the same JVM version of the IBM compiler as RAD, although it is one installation! You get very strange error messages, so it is tough to deduce this problem.
- Some important information about JRebel is logged to the file “native_stderr.log” at /RAD/SDP70/runtimes/base_v61/profiles/Application/logs/server1/
e.g. this file informs you if JRebel is activated succesfully or what problems occur. I did not find this information anywhere within the FAQ. The JRebel support gave me this hint.
- I had some problems while debugging with JRebel and WebSpehre / RAD. Sometimes, the IDE did not show the line where the debugger is at the moment. This problem happened sometimes, but not too frequently. I restarted the application server, then the debugger worked correctly again.
Besides the bad documentation, JRebel is a very good product. You can save a lot of money using it, The licences costs are very low. So, if you develop a J2EE / JEE application, you should always use this great product. So I recommend: Try it out by yourself, a 30 day trial is available to test JRebel. It will only takes some minutes to see the potential…
If you have made other experiences with JRebel, let me know and post a comment.
Kai Wähner (Twitter: @KaiWaehner)