DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones AWS Cloud
by AWS Developer Relations
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones
AWS Cloud
by AWS Developer Relations
Building Scalable Real-Time Apps with AstraDB and Vaadin
Register Now

Trending

  • Designing a New Framework for Ephemeral Resources
  • Micro Frontends on Monorepo With Remote State Management
  • What to Pay Attention to as Automation Upends the Developer Experience
  • Transactional Outbox Patterns Step by Step With Spring and Kotlin

Trending

  • Designing a New Framework for Ephemeral Resources
  • Micro Frontends on Monorepo With Remote State Management
  • What to Pay Attention to as Automation Upends the Developer Experience
  • Transactional Outbox Patterns Step by Step With Spring and Kotlin

J2EE is NOT Completely Dead Yet - but You Can Save Time and Money using JRebel

Kai Wähner user avatar by
Kai Wähner
CORE ·
Dec. 27, 10 · Interview
Like (0)
Save
Tweet
Share
11.03K Views

Join the DZone community and get the full member experience.

Join For Free

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 information is for you! In the following I will tell you why JRebel exists, and why it is very impressive if you develope JEE (and especially J2EE 1.4) applications.

J2EE is NOT dead yet!

I really like JEE 5 and especially JEE 6. Some months ago, I enjoyed a live coding session of Adam Bien. Some days ago, he blogged "J2EE Is Dead - Completely Dead". Unfortunately, plenty of applications exist where J2EE 1.4 is still very alive! Probably, many of these applications will NOT be migrated to JEE 5 or even JEE 6. But developers still have to realize change requests and bugfixes.

Problems with JEE Application Servers

If you develop with WebSphere Application Server (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.

JEE 6 application servers are much faster, try out Glassfish 3. Re-Deployment just takes a few seconds. But most people will not work with JEE 6 yet, some like me even cannot use JEE 5. And I fear that WebSphere 8 (for JEE 6) will not be as performant as Glassfish 3. Thus, JRebel probably will have a right to exists also for JEE 6, but definitely is a must-have for J2EE 1.4!

What is JRebel?

JRebel is a product which promises to solve this problem of very long deployment times.  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! As if you develope a Java SE application.

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 (you do not need this knowledge to use the product).

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 really work?

I can confirm you: JRebel works as promised! You can save plenty of development 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.

License Costs

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.

Installation

The installation is very easy (if you have done it once). 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.

Bad Documentation

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 using JRebel with WAS 6.1:

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

Conclusion

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. Thus, I recommend: Try it out by yourself, a 30 day trial is available to test JRebel. It will only take some minutes to see the potential…

If you have made other experiences with JRebel, let me know...

 

Best regards,
Kai Wähner (Twitter: @KaiWaehner)

[Content from my Blog: J2EE is NOT Completely Dead Yet - but you can save time and money using JRebel - Kai Wähner's IT-Blog]

application

Opinions expressed by DZone contributors are their own.

Trending

  • Designing a New Framework for Ephemeral Resources
  • Micro Frontends on Monorepo With Remote State Management
  • What to Pay Attention to as Automation Upends the Developer Experience
  • Transactional Outbox Patterns Step by Step With Spring and Kotlin

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com

Let's be friends: