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 客户端是指 placeOrder1
和 placeOrder2
还是主应用程序?这是否意味着多个 EJB 客户端?另一个问题是如果它在 Servlet
而不是 main 方法中怎么办?谢谢。
最佳答案
EJBClient
是一个本地程序,可以调用和操作Remote
Bean
在这里,在您的场景中,触发 PlaceOrderBean
的是客户端
在 Servlet 的情况下,如果 Servlet
调用 EJB
它在技术上是客户端,但通常称为 Facade
关于java - 什么是 EJB 客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14708522/