2013-02-19 370 views
1

這是我的休眠UTIL代碼java.lang.NoClassDefFoundError:無法初始化類org.com.hibernate.HibernateUtil

public class HibernateUtil { 

private static final SessionFactory sessionFactory = buildSessionFactory(); 

private static SessionFactory buildSessionFactory() { 
    try { 
     // Create the SessionFactory from hibernate.cfg.xml 
     return 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; 
} 
} 

這是我的hibernate.cfg.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"> 

<hibernate-configuration> 

<session-factory> 

    <!-- Database connection settings --> 
    <property name="connection.driver_class"> 
     oracle.jdbc.OracleDriver 
    </property> 
    <property name="connection.url"> 
     jdbc:oracle:thin:@127.0.0.1:ABC 
    </property> 
    <property name="connection.username">abc</property> 
    <property name="connection.password">***</property> 

    <!-- JDBC connection pool (use the built-in) --> 
    <property name="connection.pool_size">3</property> 

    <!-- SQL dialect --> 
    <property name="dialect"> 
     org.hibernate.dialect.Oracle10gDialect 
    </property> 

    <!-- Enable Hibernate's automatic session context management --> 
    <property name="current_session_context_class">thread</property> 

    <!-- Disable the second-level cache --> 
    <property name="cache.provider_class"> 
     org.hibernate.cache.NoCacheProvider 
    </property> 

    <!-- Echo all executed SQL to stdout --> 
    <property name="show_sql">true</property> 

    <!-- Drop and re-create the database schema on startup --> 
    <property name="hbm2ddl.auto">update</property> 

    <mapping class="org.com.tables.User_Details" /> 
</session-factory> 

</hibernate-configuration> 

這是錯誤

java.lang.NoClassDefFoundError: Could not initialize class org.com.hibernate.HibernateUtil 
at org.com.graphDoa.GraphDOA.salaryData(GraphDOA.java:14) 
at org.com.charts.LineChart.generateSalaryPai(LineChart.java:32) 
at com.kogent.action.TestAction.execute(TestAction.java:17) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:597) 
at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:399) 
at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:262) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:224) 
at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50) 
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:507) 
at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:421) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) 
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:403) 
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:301) 
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:162) 
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309) 
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
at java.lang.Thread.run(Thread.java:619) 

任何一個可以幫我找出這個錯誤是一回事,我喜歡打這個nothing.If哈有些事情要做的庫或任何其他的事情,請建議。我用mvc和hibernate 3的數據庫連接struts 2和tomcat 7作爲Web服務器。

+0

得到HibernateUtil類無法初始化類** ** org.com.hibernate.HibernateUtil ...什麼是你的util類的包名? – Vrushank 2013-02-19 06:57:41

+0

它是「org.com.hibernate」 – CodeHunter 2013-02-19 07:02:14

+0

我認爲hibernet lib沒有正確添加。請先檢查一下。 – Ketan 2013-02-19 09:43:50

回答

4

您可以在

http://sourceforge.net/projects/hibernate/files/hibernate3

下載冬眠相關的罐子將它解壓縮,並檢查下列文件是否被添加到您的lib文件夾

Anttr-2.7.6.jar 
asm.jar 
asm-attrs.jar 
cglib-2.1.3.jar 
commons-collections-2.1.1.jar 
commons-logging-1.0.4.jar 
ehcash.jar 
dom4j-1.6.1.jar 
hibernate3.jar <--Check this version of your jar 
jta.jar 
log4j-1.2.3.jar 

運行休眠相關的節目和在所有罐子hibernate3.jar是主要文件..

隨着h ibernate jars你必須包含一個與你使用的數據庫類型(mysql,oracle等)相關的更多jar文件。

在執行程序之前嘗試使用正確版本的jar ...某些版本的jar不支持運行......而最新的一個建議......

1

使用這個jar :::

antlr-2.7.7 
commons-collections-3.2.1 
dom4j-1.6.1 
hibernate-commons-annotations-4.0.1.Final 
hibernate-core-4.1.9.Final 
hibernate-entitymanager-4.1.9.Final 
hibernate-jpa-2.0-api-1.0.1.Final 
javassist-3.17.1-GA 
jboss-transaction-api_1.1_spec-1.0.0.Final 
jboss-logging-3.1.0.GA 
sqljdbc4-2.0(as per your database used) 

從發現:

http://sourceforge.net/projects/hibernate/files/latest/download?source=files

3

如果有人正在面臨使用GlassFish服務器誰是你必須做到以下幾點同樣的問題,

  1. 進入Glassfish的安裝路徑和路徑下添加你的數據庫的JDBC驅動glassfish/domains/domain1/lib/

  2. 重新啓動Glassfish的服務器。

0

你有沒有在你的HibernateUtil類提供的包名。如果沒有包被定義類將屬於默認包,你不能從org.com.hibernate.HibernateUtil

相關問題