任何人都可以說我的應用程序有什麼問題嗎?休眠:OutOfMemoryError:PermGen空間
public class HibernateUtil {
private static final SessionFactory sessionFactory;
static {
try {
sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
} catch (Throwable ex) {
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
public boolean insertUser(User user) {
Session session = HibernateUtil.getSessionFactory().openSession();
try {
session.beginTransaction();
session.save(user);
session.getTransaction().commit();
} catch (HibernateException he) {
session.getTransaction().rollback();
return false;
}finally{
if (session != null){
session.close();
}
}
return true;
}
這是唯一的方法,我稱之爲插入數據庫中的用戶,然後如果我嘗試插入另一個,推出此異常:
Initial SessionFactory creation failed.java.lang.OutOfMemoryError: PermGen space
更新: 我不知道hibernate.cfg中是否有內容,但是在這裏:
<?xml version="1.0" encoding="UTF-8"?>
org.hibernate.dialect.MySQLDialect com.mysql.jdbc.Driver 的jdbc:mysql的://本地主機:3306/XXXXX XXXX XXXXc 線程
<!-- Connection pool C3P0 -->
<property name="hibernate.c3p0.acquire_increment">2</property>
<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.max_size">100</property>
<property name="hibernate.c3p0.timeout">20</property>
<property name="hibernate.c3p0.max_statements">50</property>
<property name="hibernate.c3p0.idle_test_period">60</property>
<!-- To show sql output on the screen -->
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<!-- Mapping the tables in my schema -->
...
</session-factory>
爲什麼出現這種情況以及如何解決它?
此致敬禮, 瓦爾特恩裏克。
你說的意思是「嘗試插入另一個」?如果你在同一個JVM中執行它,爲什麼靜態初始化器會再次執行? – axtavt 2011-03-24 11:37:05
@axtavt當我嘗試在我的數據庫中插入另一個用戶時,我的意思是。 – 2011-03-24 11:38:33
@Valter:你從NetBeans開始吧?你有沒有嘗試創建一個'war'文件並將其部署到單獨的Tomcat安裝中? – axtavt 2011-03-24 12:00:31