2011-09-21 10 views
0

使用glassfish可嵌入容器測試EJB3,但此調用似乎一直返回null,有什麼想法?使用可嵌入容器的EJB3單元測試

//from JUnit 

EJBContainer ejc = javax.ejb.embeddable.EJBContainer.createEJBContainer(); 
+0

請確保您遵循所有prereq:http://download.oracle.com/docs/cd/E19798-01/821-1754/gjlde/index.html –

+0

如果該方法返回null,它也會拋出帶有堆棧跟蹤的異常。沒有發佈,你會得到答案,只會猜測你的問題是什麼。除了堆棧跟蹤之外,我會建議發佈會重現此問題的代碼,因爲該方法調用總是在我的工作站中起作用。 –

回答

0

得到它使用OpenEJB的工作。這裏是如何讓它啓動openejb容器進行測試。在您的JUnit代碼,添加以下(理想情況下,setUpClass)

Properties props = new Properties(); 
     props.setProperty(Context.INITIAL_CONTEXT_FACTORY,"org.apache.openejb.client.LocalInitialContextFactory"); 
     InitialContext context = new InitialContext(props); 
     MyEJB b = (MyEJB) context.lookup("MyEJBLocalBean"); 

現在,您可以撥打您的MyEJB對象B的商業方法。

-1

看一看Jetty

+0

Jetty支持EJB3? –

+0

OP詢問EJB3測試,Jetty是一個servlet容器 –