簡體   English   中英

jdbc連接-插座連接

[英]jdbc connection - socket connection

幾天前,我的網站崩潰並顯示此錯誤:

java.lang.NoClassDefFoundError: 無法初始化 class com.omicc.ZCB1F0028.EEBF50174D6EFA9

因此,我向托管公司詢問了他們可能所做的任何更改。 他們解決了這個問題並告訴我使用 JDBC 連接而不是套接字連接。 我將 hibernate 和 c3p0 與 MySQL 一起使用,據我所知,他們使用 JDBC 連接。

<property name="connection.driver_class">com.mysql.jdbc.Driver</property>

那么有沒有人知道他在說什么? :D(是的,他現在沒有回答!)

已編輯>>>>

解決了,。 so here is what i did i upgraded my hibernate from hibernate from 3.5.0 to 3.6.1 and new hibernate required hibernate-jpa-2.0-api-1.0.0.Final.jar and slf4j-simple1.6.1. 問題解決了。 我認為托管公司更新了他們的 hibernate.jar 並引起了一些參考問題。

重寫您的 HibernateUtil,使其不在 static 塊中實例化。 而是將其設為具有同步 getInstance 的 singleton。 然后

private static SessionFactory cache;

synchronized SessionFactory getInstance() throws SQLException {

if (cache != null) return cache;

// try/catch and rethrow SQLException
try {
Class.forName("com.mysql.jdbc");
} Exception (e) {
throw new SQLException(e);
}
// Test connection with JDBC
// Create a non connection pooled raw connection, try/finally close it
// throw SQL Exception if it fails
testMe()

// finally create the sessionFactory
.... build your Configuration object
.... then 
try {
SessionFactory me = ....buildSessionFactory
} catch (RuntimeException e) {
throw new SQLException(e);
}
cache = me;
return cache;

}

一些評論:有些人會更喜歡未經檢查的異常,這很好。 我喜歡做一次原始連接的原因是,如果 SQL 服務器碰巧完成,它會在啟動時減少連接池/休眠。 一旦他們成功初始化,我就沒有恢復問題。 但這是個人喜好問題,您也可以跳過 testMe()。

重點是這樣你會看到異常發生,我預測你會清楚地暗示與托管公司的連接:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM