0
對於靜態EJB,如果我使用InitialContext.lookup(itsMappedName)獲取其引用,對於(InitialContext.lookup(itsMappedName))的每次調用,它將返回一個新的有狀態EJB或相同的有狀態EJB?InitialContext.lookup(ejbMappedName)返回一個新的實例或一箇舊的實例
對於靜態EJB,如果我使用InitialContext.lookup(itsMappedName)獲取其引用,對於(InitialContext.lookup(itsMappedName))的每次調用,它將返回一個新的有狀態EJB或相同的有狀態EJB?InitialContext.lookup(ejbMappedName)返回一個新的實例或一箇舊的實例
public class SFEJB implements EJBRemote{
//.....
}
public class Class1{
void method1{
InitialContext ctx = new InitialContext(env);
EJBRemote testEJB= (EJBRemote)ctx.lookup(mappedName#fullclassname);
//.....
}
}
,我覺得它會返回一個新的狀態EJB(SFEJB)每個initialcontext.lookup(mappedName#fullclassname)。首先,我認爲「有狀態EJB」中的「有狀態」意味着對於同一個Web客戶端,每次調用initialContext.lookup(mappedName#fullclassname)時我都會得到相同的有狀態EJB,但現在我知道「有狀態」只是testEJB的手段,每個方法調用將調用相同的SFEJB實例(所以在一個狀態)。
那麼testEJB是SFEJB的EJB客戶端? (SFEJB記得testEJB)
呵呵,我覺得比較複雜,如果ejb是無狀態的,那麼每次ctx.lookup(mappedName#fullclassname)都會返回相同的代理! 是否有任何錯誤? – user1169587 2013-03-07 04:03:43