ALL,我是Java World的EJB的新手,看過好書Ejb3.0 in Action後,我對Session Bean有個疑問。什麼是會話bean的EJB客戶端?假設我們有一些代碼如下所示。什麼是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
而不是主要方法?謝謝。
請更正,非靜態變量_placeOrder1_不能直接調用到main method.i.e中。 **非靜態變量或方法不能從靜態上下文**中引用。 – Visruth
@Visruth簡歷,謝謝。已完成。 –