Monday, December 17, 2007

Are you still using EJB 2.1? Why?

Well, we all know and have read in many articles and several books that EJB 3.0 specification simplifies EJB development. It is much easier to learn, use and most importantly to test EJB 3.0 applications. There is no doubt at all about any of these claims.

I have been working on EJB 3.0 project from the past 3 months, and have indeed noticed major benefits of using this new version.

Having said that, I still see many companies using or planning to use the older version of EJB's. Some of the reasons they give are as follows:

1. We are still using JDK 1.4.2
2. We use an old version of the Application Server which doesn't support EJB 3.0 yet.
3. We don't have any statistics on the performance of EJB 3.0 projects.
4. We don't have resources or the budget to convert to a new version of JDK or EJB spec.

I am at loss to convince some of these developers(friends of mine) that this is the time to switch to Java 5 or even the latest Java 6 and EJB 3.0. But have failed to do so.

Raghu Kodali the author of the book "Beginning EJB™ 3 Application Development: From Novice to Professional" has written a blog entry called Does EJB 3.0 really make application development easy? In this article he shows the migration of the RosterApp application from EJB 2.1 to EJB 3.0. His book also has an entire chapter dedicated to migration "CHAPTER 10: Migrating EJB 2.x Applications to EJB 3".

How will you convince your manager if you are asked to implement a new project today using EJB 2.1 spec?
Have you faced such a situation at all?
Do you know any company which is using EJB 3.0?(include mine)
Are you using EJB 3.0 in your company?


  1. I am not. We do have old projects on 2.1, but the new ones will be in 3.0

  2. I think the real question is, why are you even using EJBs to begin with?

  3. It is hard to make a jump from EJB 2.1 to EJB 3.0 when you have a biggest application which is in production and it has some new components to be developed over it.

    As conclusion we decide to maintain this old project with EJB 2.1 and for the new projects we will use EJB 3.0.

  4. We are in 2009 and using J2EE yet :(. But now, we are migrating to JEE5 at last.