L'EJB ha un sacco di bagagli. Parte di quel bagaglio deriva dal fatto che è stato preso di mira dal pubblico sbagliato. L'altra parte è stata che le prime due versioni erano completamente disgustose.
Se si guardano le versioni EJB originali, il progetto era che uno sviluppatore EJB poteva creare una soluzione pacchettizzata che poteva essere utilizzata all'interno di qualsiasi contenitore EJB compatibile. Per un negozio interno, questo livello di astrazione non era necessario. Era una soluzione perfetta per creare un mercato fiorente per i fornitori di componenti EJB di terze parti. Tuttavia, i venditori di Container erano troppo zelanti nel loro marketing e stavano facendo tonnellate vendendo il loro prodotto come una soluzione praticabile per lo sviluppo di ogni giorno. Ciò equivale a creare tutto il codice dell'applicazione come componenti COM +.
Per saperne di più sulle specifiche originali J2EE, la maggior parte dei fornitori coinvolti aveva server CORBA e desiderava sfruttare questi prodotti in futuro. La specifica EJB è stata costruita tramite il protocollo IIOP (in realtà Java RMI che era un sottile strato su IIOP). Il CORBA era già stato respinto a causa della sua complessità, e l'EJB era solo CORBA travestito, quindi portò con sé molti dei problemi che CORBA aveva. In realtà, le astrazioni di EJB hanno reso più difficile lavorare di quanto non sarebbe stata una pura implementazione di CORBA.
Una volta che la gomma ha colpito il pavimento, la gente si è resa conto che le prestazioni con EJB erano atroci. Poiché ogni chiamata è una chiamata remota e la difficoltà di avviare correttamente l'applicazione per iniziare, le persone cercano rapidamente alternative. Hibernate e Spring in esecuzione in un contenitore JSP sono diventati la soluzione.
EJB 3 "ha adottato" questo approccio. Ma è ancora un compromesso generico che non offre molti vantaggi. Non esiste ancora un mercato dei componenti EJB di terze parti, quindi non c'è davvero alcun senso usare un contenitore EJB per costruire la soluzione.
Per farla breve. Sebbene EJB 3 sia un miglioramento vasto rispetto alle prime due iterazioni, non offre ancora benefici sufficienti per superare i costi.