經過漫長的缺席,我正在返回Java EE,因此我基本上必須從頭開始學習現代EE。作爲這一努力的一部分,我正在努力學習。我有一個實用的沙盒可供使用 - 一個簡單的應用程序,前端由EJB通過JPA與數據庫通信支持。運行JUnit反對EJB
爲了幫助我學習,我正在嘗試設置一些JUnit測試。不幸的是,他們沒有工作,因爲我沒有遠遠超出「猴子看,猴子」在很多方面的舞臺,我很難爲解決我所看到的問題。
以下是我已經有了建立測試MyEJB,它被定義爲@Stateless
和@LocalBean
代碼。 (如果它的事項,我運行的Glassfish/Eclipse的。)
public class MyEJBTest {
private static EJBContainer ejbContainer;
private MyEJB myEJB;
@BeforeClass
public static void startTheContainer() {
ejbContainer = EJBContainer.createEJBContainer();
}
@Before
public void lookupABean() throws NamingException {
Object object = ejbContainer.getContext().lookup("java:global/simple-stateless/MyEJB");
assertTrue(object instanceof MyEJB);
myEJB = (MyEJB) object;
}
@AfterClass
public static void stopTheContainer() {
if (ejbContainer != null) {
ejbContainer.close();
}
}
@Test
public void testFind() {
MyEntity myEntity = myEJB.find(1);
assertTrue(myEntity != null);
assertEquals("First Row's Name", myEntity.getName());
}
}
當我運行這是一個JUnit測試,我得到這個錯誤在startTheContainer()
電話:
javax.ejb.EJBException: No EJBContainer provider available: no provider names had been found.
如何解決這個?或者,我的方法根本上是錯誤的 - 以某種方式?