I know that EJB is the toppest Java technology and I really try to understand it (based on my Hibernate experience, mainly)
I have a dispute with some of my "friends" regarding if "J2EE knowledge" means automatically "EJB knowledge", too. I know that EJB is part of J2EE but can you say that you are an experimented J2EE programmer (based on Servlets, JSP, JSF, JSTL, XML-XSLT, JAX-RPC knowledges) even if you know about EJB only that is a relational mapping tool (somehow similar to Hibernate) ?
In my opinion, you can be a "experimented J2EE Programmer" (whatever experimented in details means ;-) even if you don't know EJB. Your application needs may fit exactly into the J2EE technologies without EJB's. I, for example, have a few servlet / JSP experience, no experience in Webservices and a lot of experience with EJB's.
However, EJB is not only a relational mapping tool. EJB is much more, and in our project we don't use this part of the EJB technology - we don't use Entity Beans. The main adventages of EJB's are (maybe this is an incomplete list - other opinions are welcome):
- Transactionservices - Securityservices - Single-threading model for the Bean Provider (=Programmer) - Portability - Messaging integration - Timer services (singe EJB 2.1) - relation mapping tool ;-)