Enterprise Java Beans have been one of the corner stones of the Java EE specification. As a Java EE 5 certified application server, Apache Geronimo supports EJB's extensively with the help of OpenEJB EJB Container. Although it is possible to use standard Java objects to contain your business logic and business data, using EJBs addresses many of the issues of using simple Java objects, such as scalability, lifecycle management and state management. In this article, you will see how an initial database application is extended and used for both local and remotely referred application clients for an Enterprise Java Beans back end. The application uses the built-in Apache Derby as its database. Use this article to learn how to simplify your enterprise application development process.
The Banking application has two types of application clients namely "Banking Remote Application" and "Banking Web Application". Each of these clients demonstrate how to refer Enterprise Java Beans in remote and local interfaces respectively. Both these clients are referring a common business layer which has been implemented with the help of Session and Entity Beans. Stateless Session Beans are acting as the business service interface between business entities and application clients. All the business entities of the application layer are implemented with Entity Beans.
After reading this article you should be able get the best out of EJB features of Geronimo, such as defining Enterprise Java Beans, managing relations between them and refer EJB's via differents kind of clients.
This article is organized in to following sections:
Overview of EJB Features
EJB implementation may vary from one vendor to another. Below is a list with the main features supported by Apache Geronimo.
- Stateful and stateless Session Beans
- Entity Beans
- Message driven beans (MDBs)
- Interoperability using RMI-IIOP or JAXRPC
- Ability to expose stateless session beans and MDBs as Web Services
- Support for sending and receiving messages via Web Services
- Easy provisioning and hot deployment of EJB and JMX-based Web Services
- Access to EJBs from external CORBA objects