java - 什么是 EJB 客户端?

标签 java ejb ejb-3.0

ALL,我是Java World的EJB新手,看了Ejb3.0 in Action这本好书之后,我有一个关于 session Bean 的问题。什么是 session 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 而不是 main 方法中怎么办?谢谢。

最佳答案

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

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

在 Servlet 的情况下,如果 Servlet 调用 EJB 它在技术上是客户端,但通常称为 Facade

关于java - 什么是 EJB 客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14708522/

相关文章:

java - 为什么不能继承Interface

java - UDP 将数据从一台设备发送到另一台设备

java - Oracle/Java 应用,推荐架构

ejb-3.0 - 我可以在 ejb 中使用 ExecutorService 吗?

java - 从 AOP 调用类中获取方法名称和参数

java - 无状态EJB、异常处理问题、容器吞咽异常

java - 单链表和双向链表 (Java)

java - while(true) 和 wait() 或线程 join() 之间有什么区别

java - 如何修复 “This web container has not yet been started” + javax.ejb.EJBException

java - 带有实体类的 SOAP