У меня есть проект, сначала написанный с использованием EJB 2, затем перенесенный в Spring, а после всего перенесенный в JBoss Seam 2.2.0 (с этой ситуацией я сталкиваюсь).Он будет работать на Tomcat, но сейчас он выполняется на JBoss 4.2 (хотя я считаю, что этот факт не имеет значения).Моя задача - запустить все тесты, написанные до последней миграции.
После долгих поисков я написал что-то вроде этого:
public class CustomUserDAOTest extends SeamTest {
@Test
public void f() throws Exception {
new ComponentTest() {
@Override
protected void testComponents() throws Exception {
CustomUserDAO customUserDAO = (CustomUserDAO) Component.getInstance(CustomUserDAOBean.class);
List<CustomUser> users = customUserDAO.getAll();
assertNotNull(users);
}
}.run();
}
}
Это хорошо, потому что мне удалось получить экземплярыCustomUserDAOBean и его зависимости, но когда я запускаю тест, у меня возникает другая проблема:
java.lang.RuntimeException: exception invoking: getTransaction
at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:154)
at org.jboss.seam.Component.callComponentMethod(Component.java:2249)
at org.jboss.seam.Component.unwrap(Component.java:2275)
at org.jboss.seam.Component.getInstance(Component.java:2041)
[OMITTED]
at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:103)
at br.com.visent.sicorp.server.dao.impl.CustomUserDAOBean_$$_javassist_seam_1.listAll(CustomUserDAOBean_$$_javassist_seam_1.java)
at br.com.visent.sicorp.server.dao.test.CustomUserDAOTest$1.testComponents(CustomUserDAOTest.java:24)
at org.jboss.seam.mock.AbstractSeamTest$ComponentTest.run(AbstractSeamTest.java:162)
[OMITTED]
at org.testng.TestNG.run(TestNG.java:856)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:110)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:205)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:174)
Caused by: javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
[OMITTED]
at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:144)
... 45 more
Я нашел некоторые комментарии об этом в Интернете, но не нашел решения.Что я должен делать?У кого-нибудь есть идеи?
Заранее спасибо!