怪事,tomcat启动过程不读取hibernate配置文件

我在hibernate配置文件里面加了
create
没有效果,然后我随意修改配置文件的内容,比如把数据库密码改错掉,tomcat启动的时候居然没检查出来,这是怎么回事?最近遇到一大堆问题,郁闷死了
[b]问题补充:[/b]
struts2 + hibernate 没有用spring,也没有用jndi
[b]问题补充:[/b]
property name="connection.driver_class">com.mysql.jdbc.Driver
jdbc:mysql://localhost:3306/hibernate
root
root
5
org.hibernate.dialect.MySQLDialect
thread
org.hibernate.cache.NoCacheProvider
true
create


[b]问题补充:[/b]
那这么说来,不用spring,create 是不起作用的咯?

[size=medium]没用spring自然不会报错,他又没初始化

spring是在服务启动的时候先把hibernate初始化的

所以会报错,你没用到spring,所以就不会报错啦[/size]

是不是jndi配错啦?

把hibernate的配置文件,贴出来吧
是不是那错啦?
你用的什么链接的数据库啊?
链接池?

你没有用到spring的话 启动的时候是不会检查hibernate的

一般来说 只有当你访问到项目时才会去解析你的xml

如果你里面配错的话, 你访问项目url后, 他应该会报的

楼上正解,支持

原因应该是没有创建SessionFactory. 也就是没有人主动加载过hibernate-configuration那个配置文件的内容.

[code="java"]public class HibernateSessionFactory {
static {
try {
configuration.configure(configFile);
sessionFactory = configuration.buildSessionFactory();
} catch (Exception e) {
System.err
.println("%%%% Error Creating SessionFactory %%%%");
e.printStackTrace();
}
}

public static Session getSession() throws HibernateException {
    Session session = (Session) threadLocal.get();

    if (session == null || !session.isOpen()) {
        if (sessionFactory == null) {
            rebuildSessionFactory();
        }
        session = (sessionFactory != null) ? sessionFactory.openSession()
                : null;
        threadLocal.set(session);
    }

    return session;
}

[/code]
假如你的代码也是上面这种, 你可以用某些方法调用HibernateSessionFactory 一次, 比如上面的就可以用: HibernateSessionFactory.getSession(); 这样就会促使HibernateSessionFactory 将配置文件加载一次, 那么就会去连数据库, 去create表结构.