什么是EJB客户端?

时间:2013-02-05 13:20:27

标签: java ejb ejb-3.0

ALL,我是Java World的新手,在阅读了名为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客户端是指placeOrder1placeOrder2还是主应用程序?这意味着多个EJB客户端吗?另一个问题是如果它在Servlet而不是主要方法?感谢。

2 个答案:

答案 0 :(得分:3)

EJBClient是一个本地程序,可以调用和操作Remote Bean

在这种情况下,无论触发器是什么触发器PlaceOrderBean都是客户端

InCase of Servlet,如果Servlet调用EJB,它在技术上是客户端,但通常称为Facade

答案 1 :(得分:0)

EJB Client是执行服务器端实现的功能/行为的本地程序。

此处 PlaceOrderTestClient 是EJB客户端。