配置hibernate3.2与proxool0.93连接池


按照以上步骤配置好proxool,且能正确运行,则修改hibernate.cfm.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">

<!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration>
<!-- 此为注释部分
<session-factory>
  <property name="dialect">
   org.hibernate.dialect.SQLServerDialect
  </property>
  <property name="myeclipse.connection.profile">
   for mssql
  </property>
  <property name="connection.url">
   jdbc:jtds:sqlserver://localhost:2767/camis
  </property>
  <property name="connection.username">sa</property>
  <property name="connection.password">sa</property>
  <property name="connection.driver_class">
   net.sourceforge.jtds.jdbc.Driver
  </property>
  <mapping resource="com/comingnet/hibernate/角色表.hbm.xml" />
 </session-factory>
 -->
<session-factory>
     <!-- Database connection settings -->
     <property name="hibernate.connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider</property>
     <property name="hibernate.proxool.pool_alias">MyPool</property>
     <property name="hibernate.proxool.xml">proxool.xml</property>
   <mapping resource="com/comingnet/hibernate/角色表.hbm.xml" />
</session-factory> 
</hibernate-configuration>


但要注意的是,如果在web.xml里面配置了让proxool在WEB窗口启动时自动打开连接,那么会出现如下的错误,我被这个错误折磨了差不多一天

。实际上出错的信息提示得也很清楚,但是当时在web.xml里面注释掉了不该注释的东西,而把该注释的那几行没注释掉,所以有时候一个不起

眼的小错误真是够让你受的。
javax.servlet.ServletException: Proxool Provider unable to load JAXP configurator file: proxool.xml
org.logicalcobwebs.proxool.ProxoolException: Attempt to register duplicate pool called 'MyPool'
把web.xml中的
  <servlet>
    <servlet-name>ServletConfigurator</servlet-name>
    <servlet-class>org.logicalcobwebs.proxool.configuration.ServletConfigurator</servlet-class>
    <init-param>
      <param-name>xmlFile</param-name>
      <param-value>WEB-INF/classes/proxool.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
注释掉就OK了。

一般情况下,如果重复调用hibernate的sessionFactory,仍然会出现上述问题,只不过第一次成功,再执行即会出现。解决办法是不要重复调

用sessionFactory,只在第一次执行时注册,可以直接利用MyEclipse生成的HibernateSessionFactory类来获取session。 

你可能感兴趣的:(Hibernate,servlet,MyEclipse,database,sqlserver,encoding)