khi sử dụng Hibernate 5.2.7 trong một dự án Gradle Java để kết nối với một MariaDB 10.1.19, tôi nhận được một Exception in thread "main" java.lang.NoSuchMethodError: org.hibernate.engine.spi.SessionFactoryImplementor.getProperties()Ljava/util/Map;
Hibernate 5.2.7 - java.lang.NoSuchMethodError: org.hibernate.engine.spi.SessionFactoryImplementor.getProperties() Ljava/util/Map;
Các stacktrace hoàn
Exception in thread "main" java.lang.NoSuchMethodError: org.hibernate.engine.spi.SessionFactoryImplementor.getProperties()Ljava/util/Map;
at org.hibernate.internal.CacheImpl.<init>(CacheImpl.java:71)
at org.hibernate.engine.spi.CacheInitiator.initiateService(CacheInitiator.java:28)
at org.hibernate.engine.spi.CacheInitiator.initiateService(CacheInitiator.java:20)
at org.hibernate.service.internal.SessionFactoryServiceRegistryImpl.initiateService(SessionFactoryServiceRegistryImpl.java:58)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:259)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:233)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210)
at org.hibernate.service.internal.SessionFactoryServiceRegistryImpl.getService(SessionFactoryServiceRegistryImpl.java:77)
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:240)
at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:445)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:710)
at quantitativeAnalysis.backend.dataCollector.dataCollectorManager.createFactory(dataCollectorManager.java:280)
at quantitativeAnalysis.volatilityAnalyzer.volatilityDynamicImpl.openInstance(volatilityDynamicImpl.java:18)
at frontend.MainFrame.main(MainFrame.java:96)
Tôi đã thử nhiều cách tiếp cận (phiên bản Hibernate khác 5.2.6 và 5.2.3) và tìm kiếm trên Internet để được trợ giúp nhưng không có đề xuất nào hoạt động.
Các ngoại lệ xảy ra ở đây:
Configuration configuration = new Configuration().configure();
StandardServiceRegistryBuilder ssrb = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties());
try{
factory = configuration.buildSessionFactory(ssrb.build());
}catch(Exception ex){
System.err.println("Failed to configure Sessionfactory");
ex.printStackTrace();
}
Tôi cũng đã thử các mã sau đây dẫn đến cùng một kết quả:
final StandardServiceRegistry registry = new StandardServiceRegistryBuilder()
.configure() // configures settings from hibernate.cfg.xml
.build();
try {
factory = new MetadataSources(registry).buildMetadata().buildSessionFactory();
}catch(Exception ex){
System.err.println("Failed to configure Sessionfactory");
ex.printStackTrace();
}
hibernate.cfg.xml của tôi trông như thế này
<session-factory>
<!-- Database connection settings -->
<!-- <property name="connection.driver_class">com.mysql.jdbc.Driver</property> -->
<property name="connection.driver_class">com.mysql.cj.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3307/VolatilityData</property>
<property name="connection.username">XXX</property>
<property name="connection.password">XXX</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
<!-- -->
<property name="hbm2dll.auto">create</property>
<!-- mapping content -->
<mapping resource="resources/BitcoinDaysDestroyed.hbm.xml"/>
<mapping resource="resources/BitcoinPrice.hbm.xml"/>
<mapping resource="resources/BitcoinTransactions.hbm.xml"/>
</session-factory>
Các lọ tôi bao gồm với Gradle như sau:
// Apply the java plugin to add support for Java
apply plugin: 'java'
// In this section you declare where to find the dependencies of your project
repositories {
// Use jcenter for resolving your dependencies.
// You can declare any Maven/Ivy/file repository here.
//jcenter()
mavenCentral()
maven {
url "https://maven.elasticsearch.org/releases"
}
}
dependencies {
// The production code uses Guava
compile 'com.google.guava:guava:20.0'
//QuantitativeAnalysis
// https://mvnrepository.com/artifact/com.toedter/jcalendar
compile group: 'com.toedter', name: 'jcalendar', version: '1.4'
// https://mvnrepository.com/artifact/javax.persistence/persistence-api
compile group: 'javax.persistence', name: 'persistence-api', version: '1.0.2'
// https://mvnrepository.com/artifact/com.googlecode.json-simple/json-simple
compile group: 'com.googlecode.json-simple', name: 'json-simple', version: '1.1.1'
// https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient
compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.2'
// https://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore
compile group: 'org.apache.httpcomponents', name: 'httpcore', version: '4.4.5'
// https://mvnrepository.com/artifact/org.hibernate/hibernate-core
//compile group: 'org.hibernate', name: 'hibernate-core', version: '5.2.6.Final'
//antlr-2.7.7.jar, compiled from src
compile files('libs/antlr-2.7.7.jar')
//classmate-1.3.0.jar, compiled from src
compile files('libs/classmate-1.3.0.jar')
//dom4j-1.6.1.jar, compiled from src
compile files('libs/dom4j-1.6.1.jar')
//antlr-2.7.7.jar, compiled from src
compile files('libs/geronimo-jta_1.1_spec-1.1.1.jar')
//jandex-2.0.3.Final.jar, compiled from src
compile files('libs/jandex-2.0.3.Final.jar')
//javassist-3.20.0-GA.jar, compiled from src
compile files('libs/javassist-3.20.0-GA.jar')
//jboss-logging-3.3.0.Final.jar, compiled from src
compile files('libs/jboss-logging-3.3.0.Final.jar')
//hibernate-commons-annotations-5.0.1.Final.jar, compiled from src
compile files('libs/hibernate-commons-annotations-5.0.1.Final.jar')
//hibernate-jpa-2.1-api-1.0.0.Final.jar, compiled from src
compile files('libs/hibernate-jpa-2.1-api-1.0.0.Final.jar')
//hibernate-core-5.2.7.Final.jar, compiled from src
compile files('libs/hibernate-core-5.2.7.Final.jar')
//c3p0-0.9.5.2, compiled from src
compile files('libs/c3p0-0.9.5.2.jar')
//hibernate-c3p0-5.2.7.Final.jar, compiled from src
compile files('libs/hibernate-c3p0-5.2.7.Final.jar')
//mchange-commons-java-0.2.11.jar, compiled from src
compile files('libs/mchange-commons-java-0.2.11.jar')
// https://mvnrepository.com/artifact/mysql/mysql-connector-java
compile group: 'mysql', name: 'mysql-connector-java', version: '6.0.5'
//QualitatitveAnalysis
// https://mvnrepository.com/artifact/log4j/log4j
compile group: 'log4j', name: 'log4j', version: '1.2.17'
// https://mvnrepository.com/artifact/org.elasticsearch/elasticsearch
compile group: 'org.elasticsearch', name: 'elasticsearch', version: '2.1.0'
// https://mvnrepository.com/artifact/org.elasticsearch.plugin/shield
compile group: 'org.elasticsearch.plugin', name: 'shield', version: '2.1.0'
// https://mvnrepository.com/artifact/com.google.code.gson/gson
compile group: 'com.google.code.gson', name: 'gson', version: '2.8.0'
// https://mvnrepository.com/artifact/org.twitter4j/twitter4j-core
compile group: 'org.twitter4j', name: 'twitter4j-core', version: '4.0.6'
// https://mvnrepository.com/artifact/javax.json/javax.json-api
compile group: 'javax.json', name: 'javax.json-api', version: '1.0'
//jReddit Jar, compiled from src
compile files('libs/jReddit-1.0.4-SNAPSHOT.jar')
// Use JUnit test framework
testCompile 'junit:junit:4.12'
}
Bất kỳ giúp đỡ hoặc tư vấn được đánh giá cao
Có vẻ như các phiên bản không tương thích của ngủ đông và một lib khác.Vui lòng thêm stacktrace hoàn chỉnh – Jens
http://stackoverflow.com/questions/37861063/spring-4-3-0-release-hibernate-5-0-9-final-missing-sessionfactoryimplementor-g có thể giúp bạn –
Cảm ơn bạn đã trả lời, tôi đã thêm stacktrace hoàn chỉnh. Tôi đã thấy câu hỏi khác trên stackoverflow, nhưng họ sử dụng Spring, mà tôi không sử dụng cho ứng dụng Java của mình. – Marcel