2017-01-20 5 views
5

एक Gradle जावा परियोजना में हाइबरनेट 5.2.7 का उपयोग करते समय एक MariaDB 10.1.19 से कनेक्ट करने, मैं पूरा स्टैकट्रेसहाइबरनेट 5.2.7 - java.lang.NoSuchMethodError: org.hibernate.engine.spi.SessionFactoryImplementor.getProperties() Ljava/util/मानचित्र;

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) 

मैं कई दृष्टिकोण (अन्य हाइबरनेट संस्करण की कोशिश की है एक Exception in thread "main" java.lang.NoSuchMethodError: org.hibernate.engine.spi.SessionFactoryImplementor.getProperties()Ljava/util/Map;

हो रही है 5.2.6 और 5.2.3) और मदद के लिए इंटरनेट खोज की, लेकिन सुझाव से कोई भी काम किया।

अपवाद यहां पाए जाते हैं:

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(); 
} 

मैं भी निम्न कोड एक ही परिणाम के लिए अग्रणी की कोशिश की है:

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 इस

तरह लग रहा है
<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> 

जार मैं Gradle साथ शामिल निम्नलिखित हैं:

// 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' 
} 

कोई मदद या सलाह अत्यधिक सराहना की

+0

हाइबरनेट और अन्य lib के असंगत संस्करणों की तरह दिखता है।कृपया पूरा स्टैकट्रैक – Jens

+0

जोड़ें http://stackoverflow.com/questions/37861063/spring-4-3-0-release-hibernate-5-0-9- फ़ाइनल- missing-sessionfactoryimplementor-g आपकी मदद कर सकता है –

+0

आपके लिए धन्यवाद जवाब, मैंने पूरा स्टैकट्रैक जोड़ा है। मैंने स्टैक ओवरफ्लो पर अन्य प्रश्न देखा है, लेकिन वे वसंत का उपयोग करते हैं, जिसे मैं अपने जावा एप्लिकेशन के लिए उपयोग नहीं करता हूं। – Marcel

उत्तर

6

यह समस्या के कारण होता है पर जेपीए एपीआई के एक पुराने, असंगत नकल होने से classpath।

विशेष रूप

:

  • javax.persistence: हठ-api: 1.0.2 जेपीए 2.1 एपीआई का सही संस्करण के साथ

संघर्ष:

  • org.hibernate। javax.persistence: hibernate-jpa-2.1-api: 1.0.0.Final

दुर्भाग्य से मैवेन 3 अभी भी वही कलाकृतियों के पुन: वितरण को संभालने में असमर्थ है, जो कभी-कभी आवश्यक होते हैं।

+0

यह भी देखें [मुझे जेपीए 2 मेवेन निर्भरता कहां मिल सकती है?] (Http://stackoverflow.com/q/6836772/772981) – Jarekczek

+0

मैंने इसे अपने उत्तर में बताया: org.hibernate.javax.persistence: hibernate-jpa-2.1 -पीआई: 1.0.0. फाइनल – Sanne

+0

लेकिन जेपीए 2 को 'org.hibernate' के बिना प्राप्त करना भी संभव है। – Jarekczek

1

आप Gradle का कौन-सा संस्करण है?

मैं पूछता हूं, क्योंकि मेरे पास एक ही त्रुटि है जो 3.5 से 4.3 पर अपग्रेड ग्रैडल के बाद होती है। एक ही हाइबरनेट संस्करण (5.2.9), एक ही वसंत बूट (1.5.8), लेकिन Gradle 3.5. में - ठीक है, 4.3 असफल।

मैं परीक्षण किया है और नवीनतम संस्करण काम कर ठीक मेरे 3.5.1 के लिए किया गया था। मैंने 4.0 से 4.4-rc-6 (इस पल में नवीनतम) के संस्करणों का परीक्षण किया है।

distributionUrl=https\://services.gradle.org/distributions/gradle-3.5.1-all.zip 
संबंधित मुद्दे