The J2EE Specification describes the architecture, services, and resources that must be supported at runtime by an implementation of the J2EE Platform.
In addition to this, it dictates what facilities the platform must make available to developers at runtime. These available services are accessible to the developer through the use of APIs.
In addition to the features of a high-quality enterprise application design mentioned earlier such as high availability, scalability, and reusability, implementations using J2EE provide the following additional benefits:
- The platformindependence of the Java programming language allows for code that can be deployed on a variety of hardware infrastructures.
- Vendor independence
- By using the standard J2EE interfaces, applications can be moved easily between application servers from different vendors.
- This benefit is enabled by utilizing interoperability services based on standard protocols and required by the specification to connect to other non-J2EE applications.
J2EE APIs are essentially a contract interface between the J2EE Platform implementation and the developer-created application components. The specification defines the entire collection of APIs that must be supported by an application server. Furthermore, it specifies what platform services developers can access, how they can access it, and what information must be provided before the access is allowed.
It should be noted that not all services, and therefore APIs, are available to all application component types. We have, however, provided a description of the entire standard set of J2EE 1.4 APIs:
- Enterprise Java Beans (EJB) 2.1
- Provides an infrastructure for creating, hosting, and accessing server-based, distributed business components.
- Servlet 2.4
- Provides a concise mechanism for creating and accessing web-based applications that are server and platform independent. For servlet hosting please check out our website.
- JavaServer Pages (JSP) 2.0
- Represents an extension of the servlet framework to support the rapid, template-based development of web-based applications.
- Java Message Service (JMS) 1.1
- Provides support for reliable synchronous and asynchronous point-to-point and publish-subscribe messaging models.
- Java Transaction API (JTA) 1.0
- Handles transaction management within a distributed system.
- JavaMail 1.3
- Provides complete support for the access, creation, and sending of e-mail messages using common protocols like IMAP, POP, and SMTP.
- JavaBeans Activation Framework 1.0
- Integrates support for dynamic MIME data type access and utilization.
- Java API for XML Processing (JAXP) 1.2
- Facilitates the parsing and transformation of XML documents.
- J2EE Connector Architecture 1.5
- Provides support for the integration of legacy systems with J2EE applications.
- Web Services for J2EE 1.1
- Specifies the support an application server must provide to support any web service deployed within it.
- Java API for XML-based RPC (JAX-RPC) 1.1
- Describes how to access web services using XML-based remote procedure calls.
- SOAP with Attachments API for Java (SAAJ) 1.2
- Provides a simplified mechanism for manipulating SOAP messages.
- Java API for XML Registries (JAXR) 1.0
- Supports client access to a variety of XML based registries such as the ebXML and UDDI registries.
- J2EE Management API 1.0
- Specifies the API for tools that would enable the runtime querying and management of a J2EE application server.
- Java Management Extensions (JMX) 1.2
- Represents an extension of the J2EE Management API. It introduces the usage of Managed Beans (MBeans) to provide the support required in the J2EE Management API.
- J2EE Deployment API 1.1
- Defines the interaction between the runtime deployment environment within an application server and application components being deployed.
- Java Authorization Service Provider Contract for Containers (JACC) 1.0
- Defines a contract between a J2EE application server and authorization policy providers. J2SE APIs are also available to J2EE applications with such APIs as JDBC, JNDI, and JAAS being among those that are frequently used.