您可以在測試用例中用於啓動OpenEJB的InitialContext
屬性中創建/配置Stateful容器。
這些設置就可以了:
final Properties p = new Properties();
p.put("MyStatefulContainer", "new://Container?type=STATEFUL");
p.put("MyStatefulContainer.Capacity", "0");
p.put("MyStatefulContainer.Frequency", "0");
p.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.core.LocalInitialContextFactory");
final InitialContext initialContext = new InitialContext(properties);
//lookup your beans from the initialContext
這將導致@Stateful
豆基本上從來沒有駐留在內存中,它會從磁盤讀取和寫回磁盤上的每個方法調用或生命週期回調。
final Properties p = new Properties();
p.put("MyStatefulContainer", "new://Container?type=STATEFUL");
p.put("MyStatefulContainer.Capacity", "0");
p.put("MyStatefulContainer.Frequency", "0");
final EJBContainer container = EJBContainer.createEJBContainer(p);
Foo foo = (Foo) container.getContext().lookup("java:global/yourapp/yourbean");
:
同樣的事情可以與EJB 3.1 javax.ejb.embeddable.EJBContainer
API來完成