简体   繁体   English

Hibernate 找不到 org/hibernate/cfg/Configuration 即使它在那里

[英]Hibernate can't find org/hibernate/cfg/Configuration even though it is there

For some strange reason, Hibernate doesn't want to find the cfg.Configuration class in the jar even though it is part of the.classpath.由于一些奇怪的原因,Hibernate 不想在 jar 中找到 cfg.Configuration class,即使它是 .classpath 的一部分。 This is what my util class looks like这就是我的 util class 的样子

import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateUtil
{
    private static final SessionFactory sessionFactory = buildSessionFactory();

    private static SessionFactory buildSessionFactory()
    {
        try
        {
            // Create the SessionFactory from hibernate.cfg.xml
            return new Configuration().configure().buildSessionFactory();
        }
        catch (Throwable ex)
        {
            // Make sure you log the exception, as it might be swallowed
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }

    public static SessionFactory getSessionFactory() 
    {
        return sessionFactory;
    }
}

Eclipse is importing it just fine, but I still get this error: Eclipse 正在导入它,但我仍然收到此错误:

java.lang.ClassNotFoundException: org.hibernate.cfg.Configuration
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1688)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1533)
at com.HibernateUtil.buildSessionFactory(HibernateUtil.java:14)
at com.HibernateUtil.<clinit>(HibernateUtil.java:8)
at com.helpers.DatabaseManager.getResults(DatabaseManager.java:68)
at com.web.results.ResultsServlet.doPost(ResultsServlet.java:34)
at com.web.results.ResultsServlet.doGet(ResultsServlet.java:21)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:300)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Again, I added all the required jars to the.classpath (I'm looking at them right now), so why isn't it finding it?同样,我将所有必需的 jars 添加到 the.classpath(我现在正在查看它们),那么为什么找不到它呢?

Here's the config file in case you want it:这是配置文件,以备不时之需:

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>

    <!-- Database connection settings -->
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="connection.url">url-to-my-database</property>
    <property name="connection.username">user</property>
    <property name="connection.password">pppsss</property>

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

    <!-- SQL dialect -->
    <!-- <property name="dialect">org.hibernate.dialect.HSQLDialect</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 resource="src/com/models/mappedBeans/TestTesult.hbm.xml"/>
    <mapping resource="src/com/models/results/Results.hbm.xml"/>

</session-factory>

Thanks in advanced.提前致谢。

EDIT: Added more to the error.编辑:在错误中添加了更多内容。 I think it might have something to do with the loadClass in WebAppClassLoader.我觉得可能跟WebAppClassLoader里面的loadClass有关系。

Try use another dependency: For example:尝试使用另一个依赖项:例如:

 <!-- https://mvnrepository.com/artifact/org.postgresql/postgresql -->
<dependency>
  <groupId>org.postgresql</groupId>
  <artifactId>postgresql</artifactId>
  <version>42.2.19</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
<dependency>
  <groupId>org.hibernate</groupId>
  <artifactId>hibernate-core</artifactId>
  <version>5.4.28.Final</version>
</dependency>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Hibernate JUnit找不到hibernate.cfg.xml - Hibernate JUnit can't find hibernate.cfg.xml Hibernate 找不到我的 hibernate.cfg.xml 文件 - Hibernate can't find my hibernate.cfg.xml file Java Web应用程序中的Hibernate NoClassDefFoundError org.hibernate.cfg.Configuration - Hibernate NoClassDefFoundError org.hibernate.cfg.Configuration in Java web application hibernate4.LocalSessionFactoryBean无法转换为org.hibernate.cfg.Configuration - hibernate4.LocalSessionFactoryBean cannot be cast to org.hibernate.cfg.Configuration 包 org.hibernate.cfg 不存在 import org.hibernate.cfg.Configuration; - package org.hibernate.cfg does not exist import org.hibernate.cfg.Configuration; java.lang.NoSuchMethodError org.hibernate.cfg.Configuration.addAnnotatedClass - java.lang.NoSuchMethodError org.hibernate.cfg.Configuration.addAnnotatedClass java.lang.ClassNotFoundException:org.hibernate.cfg.Configuration - java.lang.ClassNotFoundException: org.hibernate.cfg.Configuration MultiException堆栈1 of 2 java.lang.NoClassDefFoundError:org / hibernate / cfg / Configuration - MultiException stack 1 of 2 java.lang.NoClassDefFoundError: org/hibernate/cfg/Configuration ClassNotFoundException:在Eclipse中更新JNA之后的org.hibernate.cfg.Configuration - ClassNotFoundException: org.hibernate.cfg.Configuration after updating JNA in eclipse java.lang.NoClassDefFoundError: org/hibernate/cfg/配置 - java.lang.NoClassDefFoundError: org/hibernate/cfg/Configuration
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM