Ich möchte Neo4j 2.1.3 und Grails 2.4.2 kombinieren, vorzugsweise mit dem neo4j GORM Plugin oder mit Spring4Data-Neo4j.auf der Suche nach einer funktionierenden Neo4j und Grails Konfiguration
Ich habe bereits versucht, mich durch die neo4j: 2.0.0-M02 Plugin-Dokumentation und das Beispiel von Stefan Armbrusters Blog zu graben.
Ich möchte die REST-Stil-Verbindung zur NEO4J-Datenbankinstanz verwenden. Die Datenbankinstanz läuft auf localhost, ich kann sie über die Webschnittstelle abfragen.
Ich bin auf der Suche nach einer funktionierenden Konfiguration beider Produkte, so dass ich tatsächlich einige der Verwendung von Neo4j und Graphen erkunden kann.
Nach viel Versuch und Irrtum habe ich eine Grails-Konfiguration getippt, die funktionieren sollte, angesichts der Hinweise, die ich in der Dokumentation und im Beispiel fand. Ach - das tut es nicht.
Ich habe meine Grails-Konfiguration weiter unten gepostet.
Es ist wirklich schwierig herauszufinden, welche Konfigurationsoptionen aktuell für eine bestimmte Verbindungsvariante (Embedded, Rest, etc.) tatsächlich benötigt werden - Beispiele und Dokumentation scheinen nicht zueinander zu passen. Z.B. das Beispiel BuildConfig.groovy beinhaltet nicht die Neo4j GORM-Plugin, da die entsprechende Zeile auf Kommentar:
// compile ":neo4j:2.0.0-M02"
Anmerkung: Ich will nicht jammern und klagen - ich meine Erfahrung als Anfänger nur unter Angabe in Die Domäne neo4j und grails - der aktuelle Stand der Dokumentation/Beispiele zu diesem Treiber macht es ziemlich hart und unattraktiv, "es nur einen kurzen Versuch zu geben und zu sehen, ob das wirklich coole Sachen sind".
Die unten angegebene Grails-Konfiguration ist das Ergebnis von mehreren Stunden Versuch - Irrtum, der wahrscheinlich unnötige Optionen enthält (JDBC-Treibereinstellung?) Brauche ich eine JDBC-URL, wenn ich die Verbindungsvariante "rest" verwende immer noch der richtige Weg, um eine REST-style-Verbindung zu konfigurieren oder muss ich jetzt eine bestimmte JDBC-URL verwenden) - Entschuldigung für das Chaos.
Wenn ich beginnen, die Grails-Anwendung ich die folgende Fehlermeldung erhalten:
Loading Grails 2.4.2
|Configuring classpathSep 14, 2014 5:23:55 PM java.util.prefs.WindowsPreferences <init>
WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5.
.
|Environment set to development
.................................
|Packaging Grails application
.................................
|Running Grails application
Sep 14, 2014 5:24:11 PM org.restlet.ext.httpclient.HttpClientHelper start
INFO: Starting the Apache HTTP client
Sep 14, 2014 5:24:12 PM org.restlet.ext.httpclient.HttpClientHelper start
INFO: Starting the Apache HTTP client
Sep 14, 2014 5:24:12 PM org.restlet.ext.httpclient.HttpClientHelper start
INFO: Starting the Apache HTTP client
Sep 14, 2014 5:24:12 PM org.restlet.ext.httpclient.HttpClientHelper start
INFO: Starting the Apache HTTP client
Sep 14, 2014 5:24:12 PM org.restlet.ext.httpclient.HttpClientHelper start
INFO: Starting the Apache HTTP client
Sep 14, 2014 5:24:12 PM org.restlet.ext.httpclient.HttpClientHelper start
INFO: Starting the Apache HTTP client
Sep 14, 2014 5:24:12 PM org.restlet.ext.httpclient.HttpClientHelper start
INFO: Starting the Apache HTTP client
Sep 14, 2014 5:24:12 PM org.restlet.ext.httpclient.HttpClientHelper start
INFO: Starting the Apache HTTP client
Sep 14, 2014 5:24:12 PM org.restlet.ext.httpclient.HttpClientHelper start
INFO: Starting the Apache HTTP client
Sep 14, 2014 5:24:12 PM org.restlet.ext.httpclient.HttpClientHelper start
INFO: Starting the Apache HTTP client
Sep 14, 2014 5:24:12 PM org.restlet.ext.httpclient.HttpClientHelper stop
INFO: Stopping the HTTP client
Sep 14, 2014 5:24:12 PM org.restlet.ext.httpclient.HttpClientHelper stop
INFO: Stopping the HTTP client
Sep 14, 2014 5:24:12 PM org.restlet.ext.httpclient.HttpClientHelper stop
INFO: Stopping the HTTP client
Sep 14, 2014 5:24:12 PM org.restlet.ext.httpclient.HttpClientHelper stop
INFO: Stopping the HTTP client
Sep 14, 2014 5:24:12 PM org.restlet.ext.httpclient.HttpClientHelper stop
INFO: Stopping the HTTP client
Sep 14, 2014 5:24:12 PM org.restlet.ext.httpclient.HttpClientHelper stop
INFO: Stopping the HTTP client
Sep 14, 2014 5:24:12 PM org.restlet.ext.httpclient.HttpClientHelper stop
INFO: Stopping the HTTP client
Sep 14, 2014 5:24:12 PM org.restlet.ext.httpclient.HttpClientHelper stop
INFO: Stopping the HTTP client
Sep 14, 2014 5:24:12 PM org.restlet.ext.httpclient.HttpClientHelper stop
INFO: Stopping the HTTP client
Sep 14, 2014 5:24:12 PM org.restlet.ext.httpclient.HttpClientHelper stop
INFO: Stopping the HTTP client
Sep 14, 2014 5:24:13 PM org.restlet.ext.httpclient.HttpClientHelper start
INFO: Starting the Apache HTTP client
Error |
2014-09-14 17:24:13,065 [localhost-startStop-1] ERROR context.GrailsContextLoaderListener - Error initializing the application: Error creating bean with name 'transactionManagerPostProcessor': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'neo4jTransactionManager': Cannot resolve reference to bean 'neo4jDatastore' while setting bean property 'datastore'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'neo4jDatastore': FactoryBean threw exception on object creation; nested exception is java.lang.RuntimeException: java.sql.SQLException: Commit called on auto-committed connection
Message: Error creating bean with name 'transactionManagerPostProcessor': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'neo4jTransactionManager': Cannot resolve reference to bean 'neo4jDatastore' while setting bean property 'datastore'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'neo4jDatastore': FactoryBean threw exception on object creation; nested exception is java.lang.RuntimeException: java.sql.SQLException: Commit called on auto-committed connection
Line | Method
->> 262 | run in java.util.concurrent.FutureTask
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 1145 | runWorker in java.util.concurrent.ThreadPoolExecutor
| 615 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker
^ 745 | run in java.lang.Thread
Caused by BeanCreationException: Error creating bean with name 'neo4jTransactionManager': Cannot resolve reference to bean 'neo4jDatastore' while setting bean property 'datastore'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'neo4jDatastore': FactoryBean threw exception on object creation; nested exception is java.lang.RuntimeException: java.sql.SQLException: Commit called on auto-committed connection
->> 262 | run in java.util.concurrent.FutureTask
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 1145 | runWorker in java.util.concurrent.ThreadPoolExecutor
| 615 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker
^ 745 | run in java.lang.Thread
Caused by BeanCreationException: Error creating bean with name 'neo4jDatastore': FactoryBean threw exception on object creation; nested exception is java.lang.RuntimeException: java.sql.SQLException: Commit called on auto-committed connection
->> 262 | run in java.util.concurrent.FutureTask
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 1145 | runWorker in java.util.concurrent.ThreadPoolExecutor
| 615 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker
^ 745 | run in java.lang.Thread
Caused by RuntimeException: java.sql.SQLException: Commit called on auto-committed connection
->> 100 | commit in org.grails.datastore.gorm.neo4j.engine.JdbcCypherEngine
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 91 | setupIndexing in org.grails.datastore.gorm.neo4j.Neo4jDatastore
| 67 | afterPropertiesSet in ''
| 50 | getObject in org.grails.datastore.gorm.neo4j.bean.factory.Neo4jDatastoreFactoryBean
| 262 | run . . . in java.util.concurrent.FutureTask
| 1145 | runWorker in java.util.concurrent.ThreadPoolExecutor
| 615 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker
^ 745 | run in java.lang.Thread
Caused by SQLException: Commit called on auto-committed connection
->> 200 | commit in org.neo4j.jdbc.internal.Neo4jConnection
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 97 | commit in org.grails.datastore.gorm.neo4j.engine.JdbcCypherEngine
| 91 | setupIndexing in org.grails.datastore.gorm.neo4j.Neo4jDatastore
| 67 | afterPropertiesSet in ''
| 50 | getObject in org.grails.datastore.gorm.neo4j.bean.factory.Neo4jDatastoreFactoryBean
| 262 | run in java.util.concurrent.FutureTask
| 1145 | runWorker in java.util.concurrent.ThreadPoolExecutor
| 615 | run in java.util.concurrent.ThreadPoolExecutor$Worker
^ 745 | run . . . in java.lang.Thread
Error |
Forked Grails VM exited with error
BuildConfig.groovy ----------------------- -----------------------------
grails.servlet.version = "3.0" // Change depending on target container compliance (2.5 or 3.0)
grails.project.class.dir = "target/classes"
grails.project.test.class.dir = "target/test-classes"
grails.project.test.reports.dir = "target/test-reports"
grails.project.work.dir = "target/work"
grails.project.target.level = 1.6
grails.project.source.level = 1.6
//grails.project.war.file = "target/${appName}-${appVersion}.war"
grails.project.fork = [
// configure settings for compilation JVM, note that if you alter the Groovy version forked compilation is required
// compile: [maxMemory: 256, minMemory: 64, debug: false, maxPerm: 256, daemon:true],
// configure settings for the test-app JVM, uses the daemon by default
test: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, daemon:true],
// configure settings for the run-app JVM
run: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false],
// configure settings for the run-war JVM
war: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false],
// configure settings for the Console UI JVM
console: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256]
]
grails.project.dependency.resolver = "maven" // or ivy
grails.project.dependency.resolution = {
// inherit Grails' default dependencies
inherits("global") {
excludes 'xml-apis', 'netty', 'stax-api', 'slf4j-jdk14','log4j-over-slf4j', 'logback-classic'
// specify dependency exclusions here; for example, uncomment this to disable ehcache:
// excludes 'ehcache'
}
log "warn" // log level of Ivy resolver, either 'error', 'warn', 'info', 'debug' or 'verbose'
checksums true // Whether to verify checksums on resolve
legacyResolve false // whether to do a secondary resolve on plugin installation, not advised and here for backwards compatibility
repositories {
inherits true // Whether to inherit repository definitions from plugins
grailsPlugins()
grailsHome()
mavenLocal()
grailsCentral()
mavenCentral()
// uncomment these (or add new ones) to enable remote dependency resolution from public Maven repositories
//mavenRepo "http://repository.codehaus.org"
//mavenRepo "http://download.java.net/maven/2/"
//mavenRepo "http://repository.jboss.com/maven2/"
// mavenRepo "http://repo2.maven.org/maven2/"
mavenRepo 'http://m2.neo4j.org/content/repositories/releases/'
}
neo4jVersion="2.1.3"
dependencies {
// specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes e.g.
// runtime 'mysql:mysql-connector-java:5.1.29'
// runtime 'org.postgresql:postgresql:9.3-1101-jdbc41'
// test "org.grails:grails-datastore-test-support:1.0-grails-2.4"
compile("org.neo4j:neo4j-community:$neo4jVersion")
// add graphviz capabilities
compile(group:"org.neo4j", name:"neo4j-graphviz", version: neo4jVersion)
runtime (group:"org.neo4j", name:"neo4j-shell", version: neo4jVersion)
// uncomment following line if type=rest is used in DataSource.groovy
// runtime "org.neo4j:neo4j-rest-graphdb:1.9"
runtime "org.neo4j:neo4j-rest-graphdb:2.0.1"
}
plugins {
// plugins for the build system only
build ":tomcat:7.0.54"
// plugins for the compile step
compile ":scaffolding:2.1.2"
// compile ':cache:1.1.7'
compile ":asset-pipeline:1.8.11"
// plugins needed at runtime but not for compilation
// runtime ":hibernate4:4.3.5.4" // or ":hibernate:3.6.10.16"
// runtime ":database-migration:1.4.0"
runtime ":jquery:1.11.1"
compile ":neo4j:2.0.0-M02"
// Uncomment these to enable additional asset-pipeline capabilities
//compile ":sass-asset-pipeline:1.7.4"
//compile ":less-asset-pipeline:1.7.0"
//compile ":coffee-asset-pipeline:1.7.0"
//compile ":handlebars-asset-pipeline:1.3.0.3"
}
}
DataSource.groovy --------- ------------------------------------
dataSource {
pooled = true
// jmxExport = true
// driverClassName = "org.h2.Driver"
driverClassName = "org.neo4j.jdbc.Driver"
// username = "sa"
// password = ""
url = 'jdbc:neo4j://localhost:7474'
}
hibernate {
cache.use_second_level_cache = true
cache.use_query_cache = false
// cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory' // Hibernate 3
cache.region.factory_class = 'org.hibernate.cache.ehcache.EhCacheRegionFactory' // Hibernate 4
singleSession = true // configure OSIV singleSession mode
}
neo4j {
// url = "jdbc:neo4j:instance:dummy"
// type = "rest"
type="rest"
location = "http://localhost:7474/db/data/"
//url = "jdbc:neo4j://localhost:7474"
// url = 'jdbc:neo4j:instance://localhost:7474'
}
Vielen Dank im Voraus für jede Hilfe!
Haben Sie es jemals geschafft, @ bernd-h gelöst zu bekommen? –
Leider nicht. –
@Berndh - Wie wäre es jetzt ...? Ich versuche auch, ein neues Projekt zu starten, das ist wirklich nervig ... – bdparrish