Skip to content
Alexander Holbreich
Go back

Java EE 5 vs Java EE 6

This post visualizes changes between Java EE Standards 5 and 6. The comparison of standards is listed in four sections Web-Services, Web-Container, Enterprise Application technologies and Maintenance. Hope this helps someone.

SpecJava EE 5 (JSR-244)Java EE 6 (JSR-316)
JSR-101 JAX-RPCv1.1v1.1
JSR-109 Enterprise Web Servicesv1.2v1.3
JSR-181 Web Service Metadatav1.0v1.0
JSR-173 Streaming API for XMLv1.0v1.0
JSR-224 JAX-WSv2.0v2.2
JSR-222 JAXBv2.0v2.2
JSR-67 APIs for XML Messagingv1.2v1.3
JSR-311 JAX-RS-v1.1 new!
JSR-93 Java API for XML Registries (JAXR)-v1.0 new!

The new redesigned Java API for XML Web Services (JAX-WS) is the underlayer or a middle part of new Java EE 6 Web service stack. The new stack includes JAX-WS 2.0, JAXB 2.0, and SAAJ 1.3. and is also called “integrated stack”. JAX-WS was designed to take place of JAX-RPC. Due this also JSR-109 was updated because it describes run time architecture of JEE Web Services Stack. JAXB which provides an easy way to bind an XML schema to java and vice verse, was updated to.

The SOAP with Attachments API for Java (SAAJ) (also known as Java APIs for XML Messaging (JAXM)) provides a standard way to send XML documents over the Internet from the Java platform and was updated slightly containing now other consolidated standard.

New Standards are JAX-RS, that provides support for RESTful Web services and JAXR that enables pull-parsing API for reading and writing XML documents, also available in Java SE.

SpecJava EE 5Java EE 6
JSR-52 JSTLxx
JSR-252 JavaServer Facesv1.2v2.0
JSR-245 JavaServer Pagesv2.1v2.2 + EL 2.2
JSR-154 Java Servletv2.5v3.0
JSR-45 Debugging Support for Other Languages-v1.0 new

In JEE6 we have updates of all technologies of the Web Container except JSTL. Servlet 3.0 improves Servlet concept in pluggability and some ease of development. It’s also introduces Async Servlet and long waited File Uploading!. Also now configuration can be done by annotations.

Newcomer is a specification of Debugging Support for Other Languages 1.0. This describes standardized tools for correlating Java virtual machine byte code to source code of languages other than the Java, so it would guarantee debugging possibility of everything what runs is JSR-45 certified container.

Enterprise Technologies changes

SpecJava EE 5Java EE 6
JSR-250 Common Annotationsv1.0v1.0
JSR-112 JCA1.5v1.6 JSR-322
JavaMailv1.4v1.4
JSR-112 JMSv1.1v1.1
JSR-907 JTAv1.1v1.1
JSR-220 EJBv3.0v3.1 JSR-318
JSR-220 JPAv1.1v2.0 JSR-317
JSR-299 CDI-v1.0 new
JSR-330 Dependency Injection for Java-v1.0 new
JSR-303 Bean Validation-v1.0 new
JSR-316 Managed Beans-v1.0 new

In the Enterprise section we see some important changes and new specifications. The probably most prominent one is the introduction of the Context and Dependency Injection (CDI) that is there to unify the JavaServer Faces-managed bean component model with the Enterprise JavaBeans component model to simplify the programming model and architecture of web-based applications. Take a look an Weld Framework as reference implementation to this.

The similar sounding Standard Dependency Injection for Java JSR-330 just define a standard and common known DI like in spring and other frameworks. Look at popular Guice DI-Framework from Google which implements JSR-330.

Bean Validation introduces a very cool annotation based and architecture layer independent Java Bean validation.

There are also some interesting improvements in EJBs. Singleton is a new type and can be only one per container, it is also possible to use @Local Beans (Same VM) without interface. Furthermore JPA 2.0 has advanced query possibilities and validation.

Management Standards

SpecJava EE 5Java EE 6
JSR-88 J2EE Application Deploymentv1.2v1.2
JSR-925 JAFv1.1v1.1
JSR-77 J2EE Managementv1.0v1.1
JSR-115 Java Authorization Contract for Containersv1.1v1.3
JSR-196 Java Authentication Service Provider Interface for Containers-new!
JSR-206 JAXP (JavaSE)-v1.3
JSR-221 JDBC (JavaSE)-v4.0
JSR-255 JMX (JavaSE)-v2.0

Java EE 6 Certified Application Servers

  • Oracle (former Sun) GlassFish AS 3.0.1 Full certified
  • JBoss AS 6.0.0 Web Profile certification
  • IBM WebSphere Application Server V8.0 (in development, Beta available)

Please feel free to correct me or provide additional information.


Archived comments (19)

These comments were migrated from Disqus and are no longer accepting replies.

  • Alireza Haghighatkhah

    very useful, thanks for sharing.

  • Anthavio

    Very good summary, thank you

  • henk

    Nice, but why is JSR 45 listed as a new specification? This one hasn't been changed since 2003. Also, "Managed Beans 1.0" links to the overal Java EE 6 JSR.

  • Bhoodev Singh (Dave)

    Excellent! Thank you so much for sharing the valuable information.

  • AlexH

    @Rodrige: thank you for a hint. Of cause it means JAX-RPC (Remote Procedure Call) and not Rich Client Platform ;)

    @henk: Of cause you right. Managed bean could be used anywhere, not only in Web container or only outside of it. They are some kind generalized specification of JSF Beans. Managed Beans are designed and specified and fit well for whole Java EE 6 Standard. It was my own idiosyncratic decision to put them didactical to Enterprise section. Hope it's not so confusing. What do you think?

    And as I thought JSR-45 was not a part of earlier Java EE/ J2EE Specs but is mentioned explicitly in Java EE 6

  • Glenn S

    Great summary! You just got me out of a 4 hour conference call.

  • Vic

    Thanks. You have nailed this better than many others I have visited.

  • AlexH

    Thank you. I'm happy if it helps somebody.

  • sowjanya

    Thanks, really handy

  • Ayman

    Very Nice Article

  • irvie

    tengkyu for your post, very helpful for me. I asked for permission to use in my presentation :)

  • AlexH

    Hallo irvie,
     
    of course you may use it. Backlinks are welcome if the format of your presentation allows ;)

  • irvie

    yeahh, I also include your link in my presentation, thank you very much :)

  • Binh Thanh Nguyen

    Thanks, nice post.

  • Diego Arango

    Hello.
    It's still not clear enough for me. ¿Can I implement REST web services on JBoss5 (java EE 5)?
    Thanks

  • AlexH

    Of course you can ;)

  • Diego Arango

    Hi Alex, thak you very much. Can you please tell me which libraries do I need to invoke

  • AlexH

    I do not work actively with Jboss5 for many years.
    But jersey should work https://jersey.github.io/ (has worked)

  • Diego Arango

    Thanks Alex