Я создаю структуру веб-приложений, используя Spring MVC, Hibernate, JBoss Tools и JSF. Мне удалось создать классы предметной области и классы DAO, используя инструменты JBoss, однако, когда я пытаюсь создать любой объект DAO (в данный момент я создаю службу, но в конечном итоге служба будет внедрена в контроллер), я получить ошибку JNDI. Я использую Tomcat 7 в качестве AS. Я был бы признателен за простое решение этой проблемы.
Код контроллера:
AuthorHome ah = new AuthorHome();
Author a = ah.findById(1);
Код DAO/услуги:
public class AuthorHome {
private static final Log log = LogFactory.getLog(AuthorHome.class);
private final SessionFactory sessionFactory = getSessionFactory();
protected SessionFactory getSessionFactory() {
try {
return (SessionFactory) new InitialContext().lookup("SessionFactory");
} catch (Exception e) {
log.error("Could not locate SessionFactory in JNDI", e);
throw new IllegalStateException(
"Could not locate SessionFactory in JNDI");
}
}
}
Трассировки стека:
javax.naming.NameNotFoundException: Имя SessionFactory не связано в этом контексте в org.apache.naming.NamingContext.lookup(NamingContext.java:803) в org.apache.naming.NamingContext.lookup(NamingContext.java:159) в org .apache.naming.SelectorContext.lookup(SelectorContext.java:158) в javax.naming.InitialContext.lookup(неизвестный источник) в com.webapplication.service.AuthorHome.getSessionFactory(AuthorHome.java:31) в com.webapplication.service .AuthorHome.(AuthorHome.java:26)