This article demonstrates how to write a simple Stateful Session Bean. It consists of three POJO's: Remote interface Cart.java, Bean class CartBean.java and EJB client CartClient.java.
In order to complete the example application, you should be familiar with the following:
Compile all the programs, start the server and execute CartClient. You will see following Output:
Prerequisites
In order to complete the example application, you should be familiar with the following:
* EJB 3.0This demonstration requires that the following software components are installed and configured correctly:
* Application Server such as J2EE, or other
* Sun JDK version 1.5 or above
Remote Interface: Cart.java
Code: Java
package ejb_stateful;
import java.util.Collection;
import javax.ejb.Remote;
@Remote
public interface Cart {
public void addItem(String item);
public void removeItem(String item);
public Collection getItems();
}
Stateful Session Bean: CartBean.java
Code: Java
package ejb_stateful;
import java.util.ArrayList;
import java.util.Collection;
import javax.annotation.PostConstruct;
import javax.ejb.Stateful;
@Stateful
public class CartBean implements Cart {
private ArrayList items;
@PostConstruct
public void initialize() {
items = new ArrayList();
}
public void addItem(String item) {
items.add(item);
}
public void removeItem(String item) {
items.remove(item);
}
public Collection getItems() {
return items;
}
}
EJB Client: CartClient.java
Code: Java
package ejb_stateful;
import java.util.Collection;
import java.util.Iterator;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
public class CartClient {
public static void main(String [] args) throws NamingException {
try {
final Context context = getInitialContext();
Cart cart = (Cart)context.lookup("CartBean");
System.out.println("Adding items to cart");
cart.addItem("Pizza");
cart.addItem("Pasta");
cart.addItem("Noodles");
cart.addItem("Bread");
cart.addItem("Butter");
System.out.println("Listing cart contents");
Collection items = cart.getItems();
for (Iterator i = items.iterator(); i.hasNext();) {
String item = (String) i.next();
System.out.println(" " + item);
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
private static Context getInitialContext() throws NamingException {
return new InitialContext();
}
}
Code:
Adding items to cart Listing cart contents Pizza Pasta Noodles Bread Butter

I tried out this example using glassfish and netbeans