ALL,我是Java World EJB 的新手,在阅读了名为Ejb3.0 in Action的好书后,我有一个关于Session Bean 的问题。会话 bean 的 EJB 客户端是什么?假设我们有一些代码如下所示。
//EJB definition
import javax.ejb.Remote;
@Remote
public interface PlaceOrder {
..
void addItem(Long itemId);
Long confirmOrder();
..
}
@Stateful
public class PlaceOrderBean implements PlaceOrder {
private List<Long> items;
public PlaceOrderBean () {
items = new ArrayList<Long>();
}
public void addItem(Long itemId) {
items.add(itemId);
}
@Remove
public Long confirmOrder() {
Order order = new Order();
...
return order.getOrderId();
}
}
//Client
import javax.ejb.EJB;
public class PlaceOrderTestClient {
@EJB
private static PlaceOrder placeOrder1;
@EJB
private static PlaceOrder placeOrder2;
public static void main(String [] args) throws Exception {
System.out.println("Exercising PlaceOrder EJB...");
placeOrder1.addItem(new Long(200));
placeOrder1.addItem(new Long(201));
Long orderId = placeOrder1.confirmOrder();
System.out.println("Order confirmation number: " + orderId);
}
}
更新
EJB 客户端意味着placeOrder1
和placeOrder2
/或主应用程序?这是否意味着多个 EJB 客户端?另一个问题是如果它是 inServlet
而不是 main 方法怎么办?谢谢。