运行时出现如下错误,hibernate.cfg.xml 文件已经放在了各个目录下,但还是提示找不到文件,请问:
        Configuration readWriteConfiguration = new Configuration();
        readWriteConfiguration.configure("hibernate.cfg.xml");
这里找"hibernate.cfg.xml"文件的路径顺序是怎样的了?
如何处理如下错误?谢谢!
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.rvi.hibernate.HibernateSessionMgr.initialize(HibernateSessionMgr.java:82)
at com.rvi.hibernate.HibernateSessionMgr.getInstance(HibernateSessionMgr.java:60)
at com.rvi.db.hibernate.HibernateUtil.getSessionMgr(HibernateUtil.java:98)
at com.rvi.db.hibernate.HibernateUtil.getSession(HibernateUtil.java:24)
at com.rvi.search.lucene.index.LuceneIndexUpdater.<init>(LuceneIndexUpdater.java:147)
at com.rvi.search.lucene.index.LuceneCompanyIndexUpdater.<init>(LuceneCompanyIndexUpdater.java:57)
at com.rvi.search.lucene.index.LuceneCompanyIndexUpdater.main(LuceneCompanyIndexUpdater.java:313)
Caused by: org.hibernate.HibernateException: hibernate.cfg.xml not found
at org.hibernate.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:147)
at org.hibernate.cfg.Configuration.getConfigurationInputStream(Configuration.java:1287)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1309)
at com.rvi.hibernate.HibernateSessionMgr.loadJndiDataSources(HibernateSessionMgr.java:346)
at com.jigsaw.commons.utility.spring.ApplicationContextProvider.initFromClasspath(ApplicationContextProvider.java:68)
at com.rvi.hibernate.HibernateSessionMgr.initialize(HibernateSessionMgr.java:76)
... 6 more

解决方案 »

  1.   

    只要放一个在 src 下应该就可以了,放在src下的话  只要readWriteConfiguration.configure()就行了,具体寻找路径的话要看 源码了。。 
      

  2.   


    刚才在“open run dialog”里面有添加了一个文件夹,现在两种写法都换了一种错误如下:Exception in thread "main" java.lang.ExceptionInInitializerError
    at com.rvi.hibernate.HibernateSessionMgr.initialize(HibernateSessionMgr.java:82)
    at com.rvi.hibernate.HibernateSessionMgr.getInstance(HibernateSessionMgr.java:60)
    at com.rvi.db.hibernate.HibernateUtil.getSessionMgr(HibernateUtil.java:98)
    at com.rvi.db.hibernate.HibernateUtil.getSession(HibernateUtil.java:24)
    at com.rvi.search.lucene.index.LuceneIndexUpdater.<init>(LuceneIndexUpdater.java:147)
    at com.rvi.search.lucene.index.LuceneCompanyIndexUpdater.<init>(LuceneCompanyIndexUpdater.java:57)
    at com.rvi.search.lucene.index.LuceneCompanyIndexUpdater.main(LuceneCompanyIndexUpdater.java:313)
    Caused by: org.hibernate.MappingException: Resource: CorpAccount.hbm.xml not found
    at org.hibernate.cfg.Configuration.addResource(Configuration.java:479)
    at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1465)
    at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1433)
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1414)
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1390)
    at org.hibernate.cfg.Configuration.configure(Configuration.java:1310)
    at com.rvi.hibernate.HibernateSessionMgr.loadJndiDataSources(HibernateSessionMgr.java:346)
    at com.jigsaw.commons.utility.spring.ApplicationContextProvider.initFromClasspath(ApplicationContextProvider.java:68)
    at com.rvi.hibernate.HibernateSessionMgr.initialize(HibernateSessionMgr.java:76)
    ... 6 more
    报错说找不到hibernate.cfg.xml文件中配置的CorpAccount.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.sourceforge.net/hibernate-configuration-3.0.dtd">
    <hibernate-configuration>    <session-factory>        <!-- Database connection settings -->
            <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
            <property name="connection.url">jdbc:mysql://localhost:3306/sandbox_master?autoReconnect=true&amp;zeroDateTimeBehavior=convertToNull</property>
            <property name="connection.username">root</property>
            <property name="connection.password"></property>
            <!-- SQL dialect -->
            <property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
            <!-- Enable Hibernate's automatic session context management -->
            <property name="current_session_context_class">thread</property>
            <property name="hibernate.jdbc.batch_versioned_data">true</property>
            <!-- Echo all executed SQL to stdout -->
            <property name="show_sql">false</property>
            <property name="format_sql">true</property>
            <!--  eg. validate | update | create | create-drop    -->
            <property name="hbm2ddl.auto">validate</property>
            <property name="hibernate.cglib.use_reflection_optimizer">false</property>
            <mapping resource="CorpAccount.hbm.xml"/>
            <mapping resource="User.hbm.xml"/>
            <mapping resource="CleanAccountSettings.hbm.xml"/>
            <mapping resource="Message.hbm.xml"/>
           
        </session-factory></hibernate-configuration>
    其中"CorpAccount.hbm.xml"文件该放在那里才会被找到了?
      

  3.   

    Configuration readWriteConfiguration = new Configuration(); 
            readWriteConfiguration.configure("hibernate.cfg.xml"); 这样他会先找根目录下的文件。
      

  4.   

    映射 文件 CorpAccount.hbm.xml  找不到得话  你看一下 路径配对了么,在 hibernate.cfg.xml  里要配上映射文件CorpAccount.hbm.xml的路径的,  如:<mapping resource="com/../../CorpAccount.hbm.xml"/>  路径是否正确