4

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 客户端意味着placeOrder1placeOrder2/或主应用程序?这是否意味着多个 EJB 客户端?另一个问题是如果它是 inServlet而不是 main 方法怎么办?谢谢。

4

2 回答 2

3

EJBClientRemote是一个可以调用和操作Bean的本地程序

在这里,在您的场景中,触发的PlaceOrderBean都是客户端

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

于 2013-02-05T13:24:33.073 回答
0

A EJB Client is local program to execute the functionality/behavior implemented at server side.

Here PlaceOrderTestClient is EJB Client.

于 2017-02-13T09:49:18.520 回答