gpt4 book ai didi

java - 尝试通过 Hibernate 连接到 Oracle 时出现 java.lang.NoSuchMethodError

转载 作者:行者123 更新时间:2023-11-30 07:23:45 24 4
gpt4 key购买 nike

我正在使用 Spring MVC 和 Hibernate 构建一个应用程序。我还没有将 Hibernate 与 Spring 集成(两者都是新的),并且希望确保可以首先通过 Hibernate 打开 session 。

我创建了一个简单的函数来测试,目前收到以下错误:

Exception in thread "main" java.lang.NoSuchMethodError: org.hibernate.integrator.internal.IntegratorServiceImpl.(Ljava/util/LinkedHashSet;Lorg/hibernate/boot/registry/classloading/spi/ClassLoaderService;)V

我的日志告诉我,当我尝试使用 StandardServiceRegistryBuilder().applySettings() 函数调用时,会发生错误。

<小时/>

我在下面放置了尝试创建连接的示例函数(请注意,它是无效的,并且除了 try catch 任何异常之外实际上没有执行任何操作)

public static void main (String [] args) {
testHibernate();
}
public static void testHibernate() {
try {
String hibernateFilePath = "src/main/java/hibernate.cfg.xml";
File hibernateFile = new File(hibernateFilePath);
Configuration configuration = new Configuration().configure(hibernateFile);
StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties());
SessionFactory factory = configuration.buildSessionFactory(builder.build());

} catch (Exception e) {
e.printStackTrace();
}
}
<小时/>

这是我的 hibernate.cfg.xml 文件:

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.url">jdbc:oracle://servername.website.com:12345/dbname678</property>
<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="connection.username">username</property>
<property name="connection.password">password</property>
</session-factory>
</hibernate-configuration>
<小时/>

我的项目的文件结构:

File Structure

<小时/>

对我的方法的思考:我知道引发的错误与函数调用方式相关的问题有关。通常,当 Bar 库的函数 Foo 调用版本 2.0 而不是 3.0 时,会发生 java.lang.NoSuchMethodError。我仔细检查了我的依赖项并尝试重建项目,但我仍然面临同样的问题。我还尝试了 IntelliJ 的 Hibernate 样板代码来测试连接,但仍然收到完全相同的错误。

最佳答案

您可能存在依赖性冲突,例如您拥有某个库的 X 版本,而 Hibernate 需要该库的 Y 版本。

您可以使用 Maven find dependency conflicts ,使用如下命令:

mvn dependency:tree -Dverbose

它将打印依赖关系树并指示哪些库相互冲突。

关于java - 尝试通过 Hibernate 连接到 Oracle 时出现 java.lang.NoSuchMethodError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37118027/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com