2012-11-12 47 views
0

如何通過運行時查找來知道返回的對象是什麼類型的EJB?如何知道運行時的EJB類型?

由於只有知道是否是一種狀態是爲我好。

bound = new InitialContext().lookup(lookup); 
if(isStateful(bound)){...} 

我目前的應用服務器是一個JBoss AS 6.1

回答

1

這取決於...你使用註釋StatefulStateless

final Class<?> clazz = bound.getClass(); 
if (clazz.isAnnotationPresent(Stateful.class)) { 
    /* stateful */ 
} else if (clazz.isAnnotationPresent(Stateless.class)) { 
    /* stateless */ 
} else { 
    /* woops? */ 
} 
+0

這適用於EJB 3如何EJB 2? –

+1

直接檢查代理可能不起作用。我認爲你必須在無界面視圖的情況下檢查聲明的綁定類型。如果它是一個界面,那麼可能很難獲得這些信息。 –

+0

@Pangea不使用EJB2;) –

相關問題