简体   繁体   中英

Error loading Neo4j from grails app

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM