添加C3P0 jar时抛出StackOverflowError

时间:2018-03-28 12:13:00

标签: java hibernate stack-overflow c3p0

我正在使用Hibernate编写简单的应用程序。我有hibernate.cfg.xml文件如下:

<!DOCTYPE hibernate-configuration SYSTEM
    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
    <property name="hibernate.connection.driver_class">
        com.mysql.jdbc.Driver
    </property>
    <property name="hibernate.connection.url">
        jdbc:mysql://localhost:3306/demo
    </property>
    <property name="hibernate.connection.username">root</property>
    <property name="hibernate.connection.password">1234</property>
    <property name="hibernate.dialect">
        org.hibernate.dialect.MySQLDialect
    </property>



<!-- Use the C3P0 connection pool provider -->
    <property name="hibernate.c3p0.min_size">5</property> 
    <property name="hibernate.c3p0.max_size">20</property> 
    <property name="hibernate.c3p0.timeout">300</property> 
    <property name="hibernate.c3p0.max_statements">50</property> 
    <property name="hibernate.c3p0.idle_test_period">3000</property>




    <!--List of XML mapping files -->
    <mapping class="www.Message"/>
</session-factory>
</hibernate-configuration>

并检索SessionFactory对象,如下所示:

//in HibernateUtil.class
  SessionFactory sessionFactory;
  Configuration configuration=new 
                             Configuration().configure("hibernate.cfg.xml");
   sessionFactory=configuration.buildSessionFactory();`

在添加C3P0罐子之前一切正常:

  • c3p0-0.9.5.2.jar
  • 冬眠-c3p0-5.2.14.Final.jar
  • mchange-公地java的0.2.11.jar

在上面添加jar后,应用程序抛出StackOverflowError。

这是我的主要App类:

package www;

import org.hibernate.Session;
import utils.HibernateUtil;

import java.util.List;

public class HelloWorld {
public static void main(String[] args) {
    Session session=null;
    try {
        session= HibernateUtil.getSessionFactory().openSession();
        session.beginTransaction();
        session.save(new Message("Hello Denmark!"));
        session.getTransaction().commit();
        session.close();
        System.out.println("Message saved...");

        session=HibernateUtil.getSessionFactory().openSession();
        session.beginTransaction();

        List messages=session.createQuery("from Message m order by m.text 
asc").list();
        System.out.println("Messages found:"+messages.size());
        for(Object mes:messages){
            Message message=(Message)mes;
            System.out.println(message.getText());
        }
        session.getTransaction().commit();
        session.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
    finally {
        if(session!=null) session.close();
    }
}
}

任何帮助都将不胜感激。

0 个答案:

没有答案