The exercise starts with a version of today's case study that has a complete set of Session beans, but an incomplete set of Entity beans. Where there is no Entity bean, the Session bean performs direct SQL. The state of affairs is shown in Table 6.4.
Session Bean | Functional Area | Functions | Implementation/Delegation |
---|---|---|---|
Agency | Applicants | create, delete, find all | Direct SQL |
Customers | create, delete, find all | Customer bean | |
Locations | add, get details, get plural, remove | Location bean | |
Skills | add, get details, get plural, remove | Skill bean | |
Advertise | Job | create, delete, get plural | Job bean |
Customer | get details, update | Customer bean | |
AdvertiseJob | Job | get details, update | Skill bean, Location bean |
Register | Applicant | get details, update | Direct SQL |
The exercise is to implement an Applicant Entity bean and to update the Agency and Register Session beans to use this new Entity bean.
The Applicant bean should map itself to the Applicant and ApplicantSkill tables and define the following fields:
login This is the primary key for the Applicant Entity bean.
location Should be a reference to a LocationLocal to ensure referential integrity.
skills Should be a collection of SkillLocal references to ensure referential integrity.
You should find that the structure of your new bean shares many similarities with the Job Entity bean. One difference will be the primary key. The Job bean required a JobPK because it had a composite primary key. For your Applicant bean, you should not need to develop a custom primary key class because applicants will be identified simply by their login—a simple String.
The ApplicantLocalHome and ApplicantLocal interfaces have already been provided; note their similarity to JobLocalHome and JobLocal.
The directory structure of day06exercise is the same as yesterday:
build Batch scripts (for Windows and UNIX) to compile the source and to build the EAR files into the jar directory.
jar Holds agency.ear: the agency enterprise application. Also holds agencyClient.jar, the client-side JAR file optionally generated when deploy EAR. This directory also holds some intermediary JAR files that are used only to create the previous two jar files.
run Batch scripts (for Windows and UNIX) to run the JARs. Use the files in the jar directory.
In the detailed steps that follow, note one difference from yesterday is that today you will be defining and configuring the EJB as part of the enterprise application by directly editing the XML deployment descriptors in the dd directory. If you feel uneasy about doing this, there is nothing to prevent you from making the changes through the GUI.
Do note, however, that the build scripts that create the agency.ear file do require that the ApplicantBean.java source exists (even if its implementation is incomplete).
The steps you should follow are:
Good luck. A working example can be found in day06agency (with a correct auxiliary deployment descriptor).
3.143.5.15