1

这是我的休眠实用程序代码

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)

任何人都可以帮我找出这个错误是什么,我什么都没有。如果这与库或任何其他事情有关,请提出建议。我将 struts 2 用于 mvc,将 hibernate 3 用于数据库连接和tomcat 7 作为网络服务器。

4

4 回答 4

4

您可以在以下位置下载与休眠相关的 jar

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

运行休眠相关的编程和所有的 jarshibernate3.jar是主文件..

除了休眠 jars,您还必须包含一个与您使用的数据库类型(mysql、oracle 等)相关的 jar 文件。

在执行程序之前尝试使用正确版本的 jar...不支持运行某些版本的 jar...建议使用最新版本...

于 2013-02-19T12:09:46.887 回答
3

如果有人在使用 Glassfish 服务器时遇到同样的问题,您必须执行以下操作,

  1. 转到 Glassfish 安装路径并在路径下添加数据库的 jdbc 驱动程序glassfish/domains/domain1/lib/

  2. 重新启动 Glassfish 服务器。

于 2014-12-04T19:50:59.893 回答
1

使用这个罐子:::

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

于 2013-02-20T07:06:26.530 回答
0

您尚未在 HibernateUtil 类中提供包名称。如果未定义包,则该类将属于默认包,并且您无法从 org.com.hibernate.HibernateUtil 获取 HibernateUtil 类

于 2016-03-18T08:07:01.500 回答