论坛首页 入门技术论坛

hibernate+spring session打不开的问题?求教

浏览 3278 次
该帖已经被评为新手帖
作者 正文
   发表时间:2007-03-22  
架构是struts+hibernate+spring,应用服务器用的是tomcat,数据库用的是mysql,
把opensessioninview以过滤器的形式配置在了web.xml,一开始配置在上下文
<Context path="" docBase="C:\tomcat\webapps\ROOT" reloadable="false"> 
        <Resource 
        name="jdbc/aaaaDB" 
        type="javax.sql.DataSource" 
        factory="org.apache.commons.dbcp.BasicDataSourceFactory" 
        username="aaaa" 
        password="aaaa" 
        driverClassName="oracle.jdbc.driver.OracleDriver" 
        maxIdle="10" 
        maxWait="15000" 
maxActive="50" 
        url="jdbc:oracle:thin:@10.0.0.3:1521:orcl"/> 
  </Context> 
hibernate.cfg.xml
<property name="connection.datasource"> 
    java:comp/env/jdbc/aaaaDB  
</property> 
<!-- dialect for Oracle (any version) --> 
<property name="dialect"> 
    net.sf.hibernate.dialect.Oracle9Dialect  
</property> 
<property name="hibernate.connection.provider_class"> 
    net.sf.hibernate.connection.DatasourceConnectionProvider  
</property> 

在spring里配置sessionFactory利用classpath引用hibernate.cfg.xml

当把上下文的DBCP连接池去掉,改成配置到hibernate.cfg.xml
<property name="connection.pool.size">2</property> 
<property name="statement_cache.size">25</property> 
<property name="jdbc.fetch_size">50</property> 
<property name="jdbc.batch_size">30</property> 
 
<property name="show_sql">true</property> 
<property name="connection.provider_class">net.sf.hibernate.connection.DBCPConnectionProvider</property> 
<property name="dbcp.maxActive">100</property> 
<property name="dbcp.whenExhaustedAction">1</property> 
<property name="dbcp.maxWait">120000</property> 
<property name="dbcp.maxIdle">10</property> 
<property name="dbcp.ps.maxActive">100</property> 
<property name="dbcp.ps.whenExhaustedAction">1</property> 
<property name="dbcp.ps.maxWait">120000</property> 
<property name="dbcp.ps.maxIdle">100</property> 

在运行中会报opensessioninview不能打开hibernate session.应该如何解决那.
   发表时间:2007-03-22  
你是不是已经手动在持久层的代码中关闭了Session?
0 请登录后投票
   发表时间:2007-03-22  
Allen 写道
你是不是已经手动在持久层的代码中关闭了Session?

这是以前系统遗留的问题,自己写了一个HIbernateSessionFactory,用单例获取SessionFactory,然后在open,自己还需要手动关,但在一些地方又用spring来进行操作,如果不加dbcp没有事,加上spring 操作的那部分无法打开session了,如果不配置dbcp,mysql连接8小时左右短一次
0 请登录后投票
   发表时间:2007-03-23  
我还是不太明白,你为什么要把数据源在Hibernate中配置呢?

直接由WEB容器管理的JNDI来获得所需的数据源就可以了啊……

另外,你在Spring上下文中配置的SessionFactory和原来的那个是如何共存的呢?
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics