EJB'nin çok fazla bagajı var. Bu bagajın bir kısmı, yanlış kitleyi hedef aldığı gerçeğinden geliyor. Diğer kısım ise ilk iki versiyonun tamamen saçmalık olmasıydı.
Orijinal EJB sürümlerine bakarsanız, tasarım bir EJB geliştiricisinin herhangi bir EJB uyumlu kap içinde kullanılabilecek paketlenmiş bir çözüm oluşturabileceğiydi. Bir şirket içi dükkan için, bu soyutlama seviyesi gereksizdi. Üçüncü taraf EJB bileşen satıcıları için gelişen bir pazar yapmak için mükemmel bir çözümdü. Bununla birlikte, Konteyner satıcıları pazarlamalarında aşırı hevesliydi ve tonlarını ürünlerini her gün gelişim için uygun bir çözüm olarak satıyorlardı. Bu, tüm uygulama kodunuzu COM + bileşenleri olarak oluşturmaya eşdeğerdir.
Orijinal J2EE spesifikasyonu hakkında daha fazla bilgi için, dahil olan satıcıların çoğunda CORBA sunucuları vardı ve bu ürünleri ileride kullanmak istediler. EJB spesifikasyonu IIOP protokolü (aslında IIOP üzerinde ince bir tabaka olan Java RMI) üzerine kurulmuştur. CORBA karmaşıklığı nedeniyle zaten reddedilmişti ve EJB kılık değiştirmiş halde sadece CORBA idi, bu yüzden CORBA'nın sahip olduğu birçok sorunu beraberinde getirdi. Aslında EJB'nin soyutlamaları, çalışmak için saf bir CORBA uygulamasından daha zorlaştı.
Kauçuk kaldırıma çarptığında, insanlar EJB ile performansın iğrenç olduğunu fark ettiler. Her çağrı uzaktan bir çağrı olduğunda ve uygulamayı başlatmak ve düzgün bir şekilde çalışmaya başlamanın zorluğu ile insanlar hızla alternatifler aradılar. Hazırda Bekletme ve Bahar bir JSP kapsayıcısında çalışan çözüm oldu.
EJB 3 bu yaklaşımı "benimsedi". Ama hala fazla fayda sağlamayan genel bir uzlaşma. Hala üçüncü taraf EJB bileşen pazarı yok, bu yüzden çözümünüzü oluşturmak için bir EJB konteyneri kullanmanın gerçekten bir anlamı yok.
Uzun lafın kısası. EJB 3 ilk iki iterasyonda büyük bir gelişme olsa da , yine de maliyetleri aşmak için yeterli fayda sağlamaz.