I am working on a large enterprise application and application is using EJB2.1 and still under development. Its a too big project for the too big Organization but the technology used in this project seems to be little out dated to me at some point.
We are using Session Beans and Message Drive Beans (as JMS consumer) but not using Entity Beans.
Now my question is what are the main advantages in migrating to EJB 3.1 from EJB 2.1? I know some of the advntages and search on net as well but I want to know the feedback if some one has faced this situation in their project before. I want to know how tough it is to migrate it from EJB 2.1 to EJB 3.1? What are the main challenges behind this?
Hope to see great response as alway from all of you.
Session Beans and MDBs are fine in EJB 2. Arguably, the weakest point of EJB 2 is Entity Beans.
Regardless of entity beans, if you migrate from EJB 2.x to EJB 3.x, you can use dependency injection (DI) instead of Service Locator pattern using JNDI, and can use metadata annotations instead of verbose deployment descriptor.
SCJA 1.0, SCJP 1.4, SCWCD 1.4, SCBCD 1.3, SCJP 5.0, SCEA 5, SCBCD 5; OCUP - Fundamental, Intermediate and Advanced; IBM Certified Solution Designer - OOAD, vUML 2; SpringSource Certified Spring Professional
We cover EJB 2->EJB 3 migration issues in EJB 3 in Action and have devoted a full chapter to migration issues. In short, the reasons to migrate would be ease-of-use and JPA adoption. The migration can be done incrementally since EJB 2 and EJB 3 are guaranteed to be interoperable. I do know of a few folks that have done this. It is well worth it and pretty easy to do.
Hope this helps,
Independent Consultant — Author, EJB 3 in Action — Expert Group Member, Java EE 6 and EJB 3.1