我知道你会生我的气。但无论如何我都会问。 我试图在stackoverflow中的每个解决方案的问题。但尚未解决。 我生成休眠dao pojos和hbm.xml。当我尝试用dao添加东西时,我收到错误"无法在JNDI中找到SessionFactory"。***
KullanicilarHome.java
public class KullanicilarHome {
private static final Log log = LogFactory.getLog(KullanicilarHome.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");
}
}
public void persist(Kullanicilar transientInstance) {
log.debug("persisting Kullanicilar instance");
try {
sessionFactory.getCurrentSession().persist(transientInstance);
log.debug("persist successful");
} catch (RuntimeException re) {
log.error("persist failed", re);
throw re;
}
}
和MainClass.java(测试)
public class MainClass {
public static void main(String[] args) {
// TODO Auto-generated method stub
Kullanicilar user = new Kullanicilar();
user.setAd("Ergin");
user.setSoyad("DURAN");
user.setUniversite("Kxxx");
user.setBolum("bxx");
user.setCepTel("5xxxxxx");
user.setEmail("exxxx");
user.setVeliTel("55xxxxx");
KullanicilarHome x = new KullanicilarHome();
x.persist(user);
}
和hbm.cfg.xml
<hibernate-configuration>
<session-factory name="SessionFactory">
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.password">root</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/db</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.session_factory_name">SessionFactory</property>
</session-factory>
</hibernate-configuration>
和tomcat版本:v7.0.50 我再说一遍你开始生气之前。我尝试了stackoverflow中的所有解决方案。但是没有用。 - &GT; enter link description here - &GT; enter link description here - &GT; enter link description here - &GT; enter link description here
有同样的问题,解决方案没有帮助我或没有理解解决方案。 请帮帮我.. 我为我糟糕的英语道歉 感谢***
答案 0 :(得分:0)
我认为你在ejb和hibernate之间感到困惑,我没有看到你在哪里尝试将sessionfactory设置为JNDI。你必须做以下
public class KullanicilarHome {
private static final Log log = LogFactory.getLog(KullanicilarHome.class);
private final SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
.
.
.
.
注意:确保类路径中包含.property文件。通常我把它放在WEB-INF文件夹中。
参考:link