Java Champion / JavaOne Rockstar Adam Bien ( is a self-employed consultant, lecturer, software architect, developer, and author in the enterprise Java sector. He is also the author of several books and articles on Java and Java EE technology, as well as distributed Java programming. adam has posted 59 posts at DZone. View Full User Profile

J2EE Is Dead - Completely Dead

  • submit to reddit

J2EE 1.4 or officially: "JSR 151: JavaTM 2 Platform, Enterprise Edition 1.4 (J2EE 1.4) Specification" was released at 24 Nov, 2003 and was designed to be used with JDK 1.4, J2EE 1.3 was released at 24 September 2001 and is more than 9 years old now.
In JDK 1.4 there were no annotations available, so you had to configure everything with XML. J2EE 1.4 is more Configuration Over Convention, than the current - more reasonable opposite principle of Configuration by Exception or Convention over Configuration.
If I read or hear "J2EE" I always have to think about xdoclet with about 50 lines of XML, a Home Interface, Remote Interface and an unrelated Bean class just to implement a helloWorld() method. ...with Java EE 6 a helloWorld() takes exactly one line of code - as it should be.

Even JDK 1.5 is End of Service Life and so officially dead for greenfield projects as well. Most of the J2EE 1.4 application servers were not even officially supported on JDK 1.5, so it is truly ancient technology. However: there is more interests in Java EE 6 - measured in number of session attendees at conferences, blog statistics, number of sold books :-) and project requests, than ever. What also amazed me was the result of my informal surveys after talks at various conferences (JAX, W-JAX, JavaOne and Devoxx). The majority of attendees do use Java EE 5. The minority is using J2EE 1.4. Even the number of Java EE 6 projects seems to be slightly higher, than J2EE. ...and Java EE 6 is only one year young... So J2EE is dead, but Java EE 6 rocks.


Published at DZone with permission of its author, adam bien.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)



Kai Wähner replied on Tue, 2010/12/14 - 2:18am

Unfortunately, we still have huge J2EE projects with EJB 2.1 and WebSphere AS 6.1. It is horrible! But because each new CR takes just some days, I am not sure if they will ever let us migrate it to at least JEE 5.

In my opinion, worse than the EJB 2.1 technology is the architecture. Countless interfaces everywhere (and I do not mean the EJB interfaces)! I think, there is almost an interface for EVERY class - no joke!

Everything is generic - and that deduces very awful, hard readable code. Theoretically, you could change every little bit of this X million dollar project. Of course, never ever anyone of the components was replaced :-)


Best regards,

Kai Wähner (Twitter: @KaiWaehner)

Allen Chee replied on Tue, 2010/12/14 - 5:52am

I wish J2EE were really dead....Banks are the slowest in adopting new Java technologies even though the pros outweigh the cons 10 to 1. Excessive processes (red tape), regulations make migration/upgrades seem like apocalypse and avoided or delayed as long as possible. Even EOLs of JDK 1.4 doesn't seem like a strong reason to upgrade.

Igor Laera replied on Tue, 2010/12/14 - 6:45am


I always wondered, who still has the guts to run old-shool 1.4 projects on recent hardware. If you ever update only a large module of such a project to JPA/whatever-DI/whatever-OSGI-enabled-AppServer - you gain so much in performance, maintance, testability...

In five years, some companies will start to ask for 1.4 'professionals' like they ask for LISP 1.0 freaks, because they simply never discontinue their 'zombie' projects. But I still have hope.

Wojciech Kudla replied on Tue, 2010/12/14 - 8:15am in response to: Allen Chee

Not only banks; big telcos also tend to keep old J2EE systems up and running since there is no business case for migrating up to JEE. When you have a system that performs acceptable with what it is supposed to do, you just won't invest big amount of resources and impose additional risk just for having a "bleeding edge" solution. I think it's perfectly understandable from "the business" perspective. It's just us, the developers, that are so eager to applying technology novelties, simply because the majority of us are techno-freaks :)

Igor Laera replied on Tue, 2010/12/14 - 10:48am in response to: Wojciech Kudla


I think it would make people less nervous, if the old system would be "just running" in stealth mode, changing some data and some settings here and there. It just sits there and does it's job.

But my remark was, that those systems tend to be undead zombies who always re-appear unexpected on project lists now and then because business changes. That's the moment when the zombie bites the poor developer who has to add new functionality to whatever fad was going on 5 or 7 years ago here on this blog ;^)

Mark Unknown replied on Tue, 2010/12/14 - 2:56pm

The medical industry is worse than Banks and Telco. They never even made it to EJBs. So maybe that is a good thing. Except they are still stuck in the past (i.e. MUMPS) or are using a Microsoft platform. sigh.

Rainer P. replied on Wed, 2010/12/15 - 6:05am

J2EE is dead - (the idea behind) Java is dead - as the JCP is dead - completly dead. Thanks to Oracle.

Long live Apache Harmony!

Instant Tax Sol... replied on Thu, 2011/08/04 - 11:30am

Then one writes a series of methods which utilize the domain objects. This gives you control of what is exported to the client. Obviouly one must export all the necessary data in the dto to avoid LazyInitializationExceptions. -Instant Tax Solutions

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.