【问题标题】:What is the EJB Client?什么是 EJB 客户端?
【发布时间】:2013-02-05 13:20:27
【问题描述】:

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 客户端?另一个问题是如果它在 Servlet 而不是 main 方法怎么办?谢谢。

【问题讨论】:

  • 请更正,非静态变量placeOrder1不能直接调用到main方法中。即不能从静态上下文引用非静态变量或方法
  • @Visruth CV,谢谢。已经完成了。

标签: java ejb ejb-3.0


【解决方案1】:

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

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

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

【讨论】:

  • 嗨,@TechExchange,请再次查看更新的内容,在这种情况下有多少客户?谢谢。
  • no placeOrder12 是 PlaceOrderBean 的实例/引用。使用它的代码成为客户端
  • 请原谅我的理解不佳,我不确定您的意思。 using这个词的意思是调用EJB的方法而不仅仅是声明EJB类型的引用?所以,在我看来,这个例子中只有一个 EJB 客户端,尽管我声明了 2 个 EJB 类型的引用。如果我错了,请纠正我。谢谢。
  • 我的意思是唯一的 EJB 客户端是 placeOrder1 的引用,而不是 placeOrder2。因为我没有使用placeOrder2,谢谢。
  • 我自己也一直在想这个问题。这个答案使它更清楚一点,但并不完全。 “触发 PlaceOrderBean 的任何东西都是客户端”中的“触发器”是什么意思。是 PlaceOrderTestClient 类触发了 bean 吗?
【解决方案2】:

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

这里 PlaceOrderTestClient 是 EJB 客户端。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-31
    • 1970-01-01
    • 1970-01-01
    • 2017-09-28
    • 1970-01-01
    相关资源
    最近更新 更多