1 of 1 people found this helpful
Each release of Java SE includes additional funcitonality that was either part of Java EE or separate functionlaity. For example, web services support was added to Java SE in version 6 (which, if you peruse the forums, you will see caused issues). So those statements indciate when certain functionlaity was provided within Java SE.
JBoss AS, on he other hand, track Java EE (previously J2EE) specifications. JBoss AS 4.0.x follows J2EE 1.5, AS 5.x follows Java EE 5 and AS 6 will follow Java EE 6. Sun's (or actually, Oracle's) web page on Java EE describes the individual features/functions/JSRs that are part of any given Java EE release. You will find that some of the functionality overlaps functionality provided in Java SE.
Thanks Peter, that is helpful information.
I found the page with the list of functionalities that you were referring to: http://java.sun.com/javaee/technologies/javaee5.jsp
Two follow up questions (sorry if they sound stupid):
1) If a certain functionality is listed in Java EE 5, does this mean the functionality must be implemented in the Application Server (and not the JVM)?
2) Taking an example of a specification that exists in Java SE but not in Java EE - let's use JNDI as an example. JNDI has a API for client side and the service layer (SPI) for a provider. Since EE is a superset of SE, does that mean ALL certified EE Application Servers must meet the JNDI SPI provider specifications? Is it safe to assume that since Sun's EE functionality from the above webpage doesn't list anything about JNDI specifications but is it listed in SE? I hope my logic is not wrong, I am still somewhat new to the server side implementations of Java EE.
Thanks very much!
1) Yes, and no. It means that the App Server must provide that functionality, whther it does so as part of the JVM or not is up to the App Server vendor. Example: Java EE 5 requires Java Util Logging; this logging is part of the JVM, whether the App Server provides funcionality around this or not is up to the vendor; JBoss AS 5.x recognizes Java Util Logging and redirects it to Log4J which performs the actual logging.
2) Yes the App Server must obey the JNDI SPI specifications. Typically, for this type of functionality, the JVM provides a rudimentary implementation that works just fine for a stand-alone app. The App Server will implement more robust funtionlaity to support multiple deployed apps and remote apps. So JBoss AS does not reply just on the JVM's JNDI implementation but rather provides its own (at least, that is my understanding- I haven't researched the JNDI code specifically, but I know, for instance, that my statements apply to RMI).