Help is available for each task.
Task 1
Design a wrapper class called MusicData, that can represent the persistent fields in MusicCD (namely upc, title, artist, type, price).
Don't forget to implement java.io.Serializable.
MusicData should provide a constructor for setting its instance fields with the MusicCD attributes:
...
public MusicData(String upc, String title,
String artist, String type,
float price) {
this.upc = upc;
this.title = title;
this.artist = artist;
this.type = type;
this.price = price;
}
...
|
Task 2
Design an Inventory session bean that provides an addInventory() service. This argument should take an array of MusicData objects as an argument. Within the addInventory() method, this bean should establish a MusicCDHome reference and then loop through the data passed as an argument to addInventory(), creating MusicCD beans and setting their attributes.
InventoryHome should prescribe a single bean-creation method with the signature:
public Inventory create() throws CreateException, RemoteException;
Inventory should prescribe one method only, addInventory(), with an interface similar to the following, depending on your design:
public boolean addInventory(MusicData[] data)
throws RemoteException;
Because Inventory is a session bean, it has no primary key and its creation methods have no arguments: create() and ejbCreate().
Note that InventoryBean.addInventory() is similar to MusicClient in that it must establish a JNDI context, look up the MusicCD bean, and so on.
Task 3
Compile all the classes that compose your bean.
Don't forget that the compiler needs to be able to find the javax.ejb classes, which are in J2EE_HOME/j2ee.jar. You may use the following command to compile. Type the following one line:
javac -classpath %CLASSPATH%;%J2EE_HOME%
\lib\j2ee.jar;. musicstore\*.java
Task 4
Package your session bean into a jar file, using the provided XML deployment descriptor.
Execute the command jar cvf Inventory.jar musicstore\*.class META-INF\ejb-jar.xml to create the jar file.