希望大家不要喷我,初学s2sh。必要的包已经导入(目前自己这么认为的),在整合的过程中我把hibernate.cfg.xml删除了,数据源就交给spring的配置文件applicationContext-hibernate.xml管理了,该文件时放在WEB-INF/config目录下,里面的内容是:
<!-- 配置数据源 Hibernate支持  -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" >
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<property name="username" value="scott" />
<property name="password" value="tiger" />
<property name="url" value="jdbc:oracle:thin:@192.168.93.150:1521:myorcl" />
</bean>
<!-- class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">-->
<bean id="sessionFactory" 
            class="org.springframework.orm.hibernate4.LocalSessionFactoryBean" >
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">
                    org.hibernate.dialect.Oracle9Dialect
                </prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.temp.use_jdbc_metadata_defaults">false</prop>
            </props>
        </property>
        <property name="mappingResources">
            <list>
                <value>com/neusoft/leehom/model/Emp.hbm.xml</value>
                <value>com/neusoft/leehom/model/Dept.hbm.xml</value>
            </list>
        </property>
</bean>
并且利用myeclipse自动生成pojo和映射文件,其中有一个类HibernateSessionFactory.java,里面有的部分内容是
private static String CONFIG_FILE_LOCATION = "/config/applicationContext-hibernate.xml" ;
    private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();
    private  static Configuration configuration = new Configuration();    
    private static org.hibernate.SessionFactory sessionFactory;
    private static String configFile = CONFIG_FILE_LOCATION; static {
     try {
configuration.configure(configFile);
sessionFactory = configuration.buildSessionFactory();
} catch (Exception e) {
System.err
.println("%%%% Error Creating SessionFactory %%%%");
e.printStackTrace();
}
    }
由于把hibernate.cfg.xml删除了,所以在这个类中private static String CONFIG_FILE_LOCATION = "/config/applicationContext-hibernate.xml",原本是“/hibernate.cfg.xml”。
在测试的时候发现报错:
%%%% Error Creating SessionFactory %%%%
org.hibernate.HibernateException: /config/applicationContext-hibernate.xml not found
at org.hibernate.internal.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:173)
at org.hibernate.cfg.Configuration.getConfigurationInputStream(Configuration.java:1949)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1930)
at com.neusoft.leehom.dao.HibernateSessionFactory.<clinit>(HibernateSessionFactory.java:30)
at com.neusoft.leehom.dao.BaseHibernateDAO.getSession(BaseHibernateDAO.java:13)
at com.neusoft.leehom.dao.EmpDAO.findAll(EmpDAO.java:122)
at com.neusoft.leehom.service.impl.EmpManagerImpl.queryAll(EmpManagerImpl.java:11)
at com.neusoft.leehom.action.EmpAction.showList(EmpAction.java:14)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:453)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:292)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:255)
at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
.......
网上找了很久,只知道有人把hibernate.cfg.xml删除了,但是没有说如何在HibernateSessionFactory类中修改路径。其中我我那个路径很多,已经用过../config/applicationContext-hibernate.xml以及/WEB-INF/applicationContext-hibernate.xml都没有用。请高手指教,上述的整合有错的地方也希望高手指点。谢谢!

解决方案 »

  1.   

    web.xml文件里应用applicationContext-hibernate.xml了吗?
    还有感觉你
    private static String CONFIG_FILE_LOCATION = "/config/applicationContext-hibernate.xml" ;
    路径写的不对应该是/WEB-INF/config/applicationContext-hibernate.xml"
      

  2.   

    web.xml中有这个文件的,注入成功的,报那个错是最后的方法了。你说的那个路径也写了,没有用的。
      

  3.   

    显然是/config/applicationContext-hibernate.xml找不到。自己好好看看吧