大家好,我一直在尝试配置我的应用程序以使用Hibernate ORM,但我遇到了JNDI属性规范的挑战,因为我无法为tomcat指定“hibernate.jndi.class”,我一直收到错误应用程序尝试配置hibernate(“javax.naming.NoInitialContextException:需要在环境或系统属性中指定类名,或者在applet参数中指定类名,或在应用程序资源文件中指定:java.naming.factory.initial”< / b>)。
我想知道是否有人在tomcat上成功使用JNDI配置,如果是这样,我希望有人分享hibernate.cfg.xml文件。下面我发布了我当前的hibernate.cfg.xml文件。
提前致谢。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory name="HibernateSessionFactory">
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.datasource">java:comp/env/jdbc/TestDB</property>
<property name="hibernate.current_session_context_class">thread</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">inheritance</property>
<!-- Mapping with model class containing annotations -->
<mapping resource="user.hbm.xml"/>
</session-factory>
</hibernate-configuration>
答案 0 :(得分:0)
您好我会尝试回答这个问题,因为我有类似的问题,并且还有 NoInitialContextException ,并且我删除了会话工厂的名称属性就像你的情况一样
<session-factory name="HibernateSessionFactory">
到
<session-factory>
所以hibernate创建自己的SessionFacade并且不会尝试使用JNDI中的一个 但它也可能需要改变DAO。