I am using Grails 2.0.1 and Neo4J 1.8, and would like to instantiate a Neo4j database in my spring resources file like this:
import org.codehaus.groovy.grails.commons.ConfigurationHolder as CH;
import org.neo4j.graphdb.GraphDatabaseService;
import org.neo4j.graphdb.factory.GraphDatabaseFactory;
import org.neo4j.graphdb.factory.GraphDatabaseSettings;
// Place your Spring DSL code here
beans = {
GraphDatabaseService db = getGraph();
enronService(com.fxpal.neo4j.EnronService) {
graph = db;
index = db.index()
.getNodeAutoIndexer()
.getAutoIndex();
}
}
protected GraphDatabaseService getGraph() {
String graphDBName = CH.config.enron.graphdb ?: "../databases/enrontest";
GraphDatabaseService db = new GraphDatabaseFactory().
newEmbeddedDatabaseBuilder( graphDBName ).
setConfig( GraphDatabaseSettings.node_keys_indexable, "emailID,address" ).
setConfig( GraphDatabaseSettings.node_auto_indexing, "true" ).
setConfig( GraphDatabaseSettings.dump_configuration, "true").
newGraphDatabase();
return db;
}
My BuildConfig.groovy
file has mavenLocal()
enabled, and I have the Lucene 3.5 core library in my path.
When I run my application, I get the following messages as Neo4j is started:
| Running Grails application
Physical mem: 7987MB, Heap size: 455MB
| Error 2012-11-02 11:34:48,597 [pool-5-thread-1] ERROR spring.GrailsRuntimeConfigurator - [RuntimeConfiguration] Unable to load beans from resources.groovy
Message: Failed to transition org.neo4j.kernel.InternalAbstractGraphDatabase$DefaultKernelExtensionLoader@2116b32 from NONE to STOPPED
Line | Method
->> 388 | init in org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 82 | init in org.neo4j.kernel.lifecycle.LifeSupport
| 116 | start . . . . . . . . . . in ''
| 227 | run in org.neo4j.kernel.InternalAbstractGraphDatabase
| 79 | <init> . . . . . . . . . in org.neo4j.kernel.EmbeddedGraphDatabase
| 70 | newDatabase in org.neo4j.graphdb.factory.GraphDatabaseFactory$1
| 205 | newGraphDatabase . . . . in org.neo4j.graphdb.factory.GraphDatabaseBuilder
| 21 | getGraph in resources
| 8 | doCall . . . . . . . . . in resources$_run_closure1
| 736 | invokeBeanDefiningClosure in grails.spring.BeanBuilder
| 569 | beans . . . . . . . . . . in ''
| 303 | innerRun in java.util.concurrent.FutureTask$Sync
| 138 | run . . . . . . . . . . . in java.util.concurrent.FutureTask
| 886 | runTask in java.util.concurrent.ThreadPoolExecutor$Worker
| 908 | run . . . . . . . . . . . in ''
^ 619 | run in java.lang.Thread
Caused by NoClassDefFoundError: org/apache/lucene/util/Version
->> 113 | <clinit> in org.neo4j.index.impl.lucene.LuceneDataSource
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 72 | load in org.neo4j.index.lucene.LuceneIndexProvider
| 1171 | loadIndexImplementations in org.neo4j.kernel.InternalAbstractGraphDatabase$DefaultKernelExtensionLoader
| 1143 | init in ''
| 382 | init . . . . . . . . . . in org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance
| 82 | init in org.neo4j.kernel.lifecycle.LifeSupport
| 116 | start . . . . . . . . . . in ''
| 227 | run in org.neo4j.kernel.InternalAbstractGraphDatabase
| 79 | <init> . . . . . . . . . in org.neo4j.kernel.EmbeddedGraphDatabase
| 70 | newDatabase in org.neo4j.graphdb.factory.GraphDatabaseFactory$1
| 205 | newGraphDatabase . . . . in org.neo4j.graphdb.factory.GraphDatabaseBuilder
| 21 | getGraph in resources
| 8 | doCall . . . . . . . . . in resources$_run_closure1
| 736 | invokeBeanDefiningClosure in grails.spring.BeanBuilder
| 569 | beans . . . . . . . . . . in ''
| 303 | innerRun in java.util.concurrent.FutureTask$Sync
| 138 | run . . . . . . . . . . . in java.util.concurrent.FutureTask
| 886 | runTask in java.util.concurrent.ThreadPoolExecutor$Worker
| 908 | run . . . . . . . . . . . in ''
^ 619 | run in java.lang.Thread
Caused by ClassNotFoundException: org.apache.lucene.util.Version
->> 156 | findClass in org.codehaus.groovy.tools.RootLoader
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 307 | loadClass in java.lang.ClassLoader
| 128 | loadClass . . . . . . . . in org.codehaus.groovy.tools.RootLoader
| 248 | loadClass in java.lang.ClassLoader
| 113 | <clinit> . . . . . . . . in org.neo4j.index.impl.lucene.LuceneDataSource
| 72 | load in org.neo4j.index.lucene.LuceneIndexProvider
| 1171 | loadIndexImplementations in org.neo4j.kernel.InternalAbstractGraphDatabase$DefaultKernelExtensionLoader
| 1143 | init in ''
| 382 | init . . . . . . . . . . in org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance
| 82 | init in org.neo4j.kernel.lifecycle.LifeSupport
| 116 | start . . . . . . . . . . in ''
| 227 | run in org.neo4j.kernel.InternalAbstractGraphDatabase
| 79 | <init> . . . . . . . . . in org.neo4j.kernel.EmbeddedGraphDatabase
| 70 | newDatabase in org.neo4j.graphdb.factory.GraphDatabaseFactory$1
| 205 | newGraphDatabase . . . . in org.neo4j.graphdb.factory.GraphDatabaseBuilder
| 21 | getGraph in resources
| 8 | doCall . . . . . . . . . in resources$_run_closure1
| 736 | invokeBeanDefiningClosure in grails.spring.BeanBuilder
| 569 | beans . . . . . . . . . . in ''
| 303 | innerRun in java.util.concurrent.FutureTask$Sync
| 138 | run . . . . . . . . . . . in java.util.concurrent.FutureTask
| 886 | runTask in java.util.concurrent.ThreadPoolExecutor$Worker
| 908 | run . . . . . . . . . . . in ''
^ 619 | run in java.lang.Thread
I had been able to load this database from other applications yesterday. In searching for a solution to this problem, I came across this discussion on the Neo4j Google group. The implication there is that this problem should have already been solved in my version of Neo4j (1.8, downloaded last week.) What should I try next?
UPDATE
BuildConfig.groovy. Mostly stock; mavenLocal()
uncommented; hibernate removed.
grails.servlet.version = "2.5" // 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.target.level = 1.6
grails.project.source.level = 1.6
//grails.project.war.file = "target/${appName}-${appVersion}.war"
grails.project.dependency.resolution = {
// inherit Grails' default dependencies
inherits("global") {
// uncomment 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
repositories {
inherits true // Whether to inherit repository definitions from plugins
grailsPlugins()
grailsHome()
grailsCentral()
mavenCentral()
// uncomment these to enable remote dependency resolution from public Maven repositories
//mavenCentral()
mavenLocal()
//mavenRepo "http://snapshots.repository.codehaus.org"
//mavenRepo "http://repository.codehaus.org"
//mavenRepo "http://download.java.net/maven/2/"
//mavenRepo "http://repository.jboss.com/maven2/"
}
dependencies {
// specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes eg.
// runtime 'mysql:mysql-connector-java:5.1.16'
}
plugins {
// runtime ":hibernate:$grailsVersion"
runtime ":jquery:1.7.1"
runtime ":resources:1.1.6"
// Uncomment these (or add new ones) to enable additional resources capabilities
//runtime ":zipped-resources:1.0"
//runtime ":cached-resources:1.0"
//runtime ":yui-minify-resources:0.1.4"
build ":tomcat:$grailsVersion"
}
}
添加到您的grails-app/conf/BuildConfig.groovy
的依赖项部分:
compile('org.neo4j:neo4j-community:1.8')
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.