Jboss Ejb3.0 Statefull Bean
这个例子结合了j2se5.0的generis新特性,可以先看下我写的J2se5.0 generis新特性
ShoppingCart.java
package org.jboss.tutorial.stateful.bean;
import javax.ejb.Remote;
import javax.ejb.Remove;
import java.util.HashMap;
@Remote
public interface ShoppingCart
{
void buy(String product, int quantity);
HashMap<String, Integer> getCartContents();
@Remove void checkout();
}
ShoppingCartBean.java
package org.jboss.tutorial.stateful.bean;
import javax.ejb.Remove;
import javax.ejb.Stateful;
import java.util.HashMap;
import java.io.Serializable;
@Stateful
public class ShoppingCartBean implements ShoppingCart, Serializable
{
private HashMap<String, Integer> cart = new HashMap<String, Integer>();
public void buy(String product, int quantity)
{
if (cart.containsKey(product))
{
int currq = cart.get(product);
currq += quantity;
cart.put(product, currq);
}
else
{
cart.put(product, quantity);
}
}
public HashMap<String, Integer> getCartContents()
{
return cart;
}
@Remove
public void checkout()
{
System.out.println("To be implemented");
}
}
Client.java
package org.jboss.tutorial.stateful.client;
import org.jboss.tutorial.stateful.bean.ShoppingCart;
import javax.ejb.EJBException;
import javax.naming.InitialContext;
import java.rmi.NoSuchObjectException;
import java.util.HashMap;
public class Client
{
public static void main(String[] args) throws Exception
{
InitialContext ctx = new InitialContext();
ShoppingCart cart = (ShoppingCart) ctx.lookup(ShoppingCart.class.getName());
System.out.println("Buying 1 memory stick");
cart.buy("Memory stick", 1);
System.out.println("Buying another memory stick");
cart.buy("Memory stick", 1);
System.out.println("Buying a laptop");
cart.buy("Laptop", 1);
System.out.println("Print cart:");
HashMap<String, Integer> fullCart = cart.getCartContents();
for (String product : fullCart.keySet())
{
System.out.println(fullCart.get(product) + " " +
推荐文章 |
