Я создаю структуру веб-приложений, используя Spring MVC, Hibernate, JBoss Tools и JSF. Однако мне удалось создать классы домена и классы DAO, используя JBoss Tools, однако, когда я пытаюсь построить любой объект DAO (на данный момент я строю службу, но в конечном итоге услуга будет введена в контроллер), я получить ошибку JNDI. Я использую Tomcat 7 как AS. Я был бы признателен за простое решение этой проблемы.Ошибка фабричной сессии JNDI с Tomcat и Hibernate
Controller Код:
AuthorHome ah = new AuthorHome();
Author a = ah.findById(1);
DAO/Service Code:
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) at org.apache.naming.NamingContext.lookup (NamingContext.java:159) at org.apache.naming.SelectorContext.lookup (SelectorContext.java:158) at javax.naming.InitialContext.lookup (Неизвестный источник) at com .webapplication.service.AuthorHome.getSessionFactory (AuthorHome.java:31) на com.webapplication.service.AuthorHome. (AuthorHome.java:26)
Благодарим вас за ссылки. Я не решил проблему, воспользовавшись предлагаемым контентом, однако, это привело меня в правильном направлении, и я уверен, что это будет полезно в будущем. Это было что-то глупое, службы не смогли найти мой hibernate.cfg.xml, поскольку путь, на который он ссылался, был неправильным. – unknown