Part I Development Tasks and Tools
1. Setting Up a Development Environment
Using the Java Optional Package Mechanism
Using the Endorsed Standards Override Mechanism
Application-Specific Class Loading
Circumventing Class Loader Isolation
Sharing Libraries Across a Cluster
Packaging the Client JAR for One Application in Another Application
To Package the Client JAR for One Application in Another Application
Part II Developing Applications and Application Components
6. Using the Java Persistence API
7. Developing Web Applications
8. Using Enterprise JavaBeans Technology
9. Using Container-Managed Persistence
12. Developing Lifecycle Listeners
13. Developing OSGi-enabled Java EE Applications
Part III Using Services and APIs
14. Using the JDBC API for Database Access
15. Using the Transaction Service
16. Using the Java Naming and Directory Interface
Access to components within applications and modules installed on the server occurs within the context of isolated class loader universes, each of which has its own Applib and Archive class loaders.
Application Universe – Each Java EE application has its own class loader universe, which loads the classes in all the modules in the application.
Individually Deployed Module Universe – Each individually deployed EJB JAR or web WAR has its own class loader universe, which loads the classes in the module.
A resource such as a file that is accessed by a servlet, JSP, or EJB component must be in one of the following locations:
A directory pointed to by the Libraries field or ----libraries option used during deployment
A directory pointed to by the library-directory element in the application.xml deployment descriptor
A directory pointed to by the application or module’s classpath; for example, a web module’s classpath includes these directories:
module-name/WEB-INF/classes module-name/WEB-INF/lib