编写一个简单的Neo4j服务器 - 获得运行时错误

时间:2014-08-15 14:12:50

标签: neo4j

我是Neo4j的新手。我正在尝试编写一个简单的Neo4j服务器,它可以在我选择的端口上进行监听。我使用的代码与以下教程中的文件server.java完全相同 http://hmkcode.com/first-time-neo4j/ 代码编译得很好但是当我尝试运行它时我得到一个错误(粘贴在下面) 任何帮助,将不胜感激。我正在使用jre7和jdk1.8.0_11

为了您的方便,我还剪切并粘贴了以下代码(与上面的链接完全相同)

   import org.neo4j.graphdb.factory.GraphDatabaseFactory;

   import org.neo4j.graphdb.factory.GraphDatabaseSetting;

   import org.neo4j.kernel.GraphDatabaseAPI;

   import org.neo4j.server.WrappingNeoServerBootstrapper;

   import org.neo4j.server.configuration.Configurator;

   import org.neo4j.server.configuration.ServerConfigurator;

   import org.neo4j.shell.ShellSettings;

public class neoserver {

    public static void main(String args[]){
        {
                GraphDatabaseAPI graphdb = (GraphDatabaseAPI) new GraphDatabaseFactory()
                .newEmbeddedDatabaseBuilder( "db/graphDB" )
                .setConfig( ShellSettings.remote_shell_enabled, GraphDatabaseSetting.TRUE )
                .newGraphDatabase();
                ServerConfigurator config;
                config = new ServerConfigurator( graphdb );
                // let the server endpoint be on a custom port
                config.configuration().setProperty(Configurator.WEBSERVER_PORT_PROPERTY_KEY, 7575 );

                WrappingNeoServerBootstrapper srv;
                srv = new WrappingNeoServerBootstrapper( graphdb, config );
                srv.start();
            }
        } 
    }

我得到的错误

   Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang/text/StrLookup

   at org.neo4j.server.configuration.ServerConfigurator.<init>(ServerConfigurator.java:52)

   at jungpagerankserver.neoserver.main(neoserver.java:80)

   Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang.text.StrLookup

   at java.net.URLClassLoader$1.run(URLClassLoader.java:372)

   at java.net.URLClassLoader$1.run(URLClassLoader.java:361)

   at java.security.AccessController.doPrivileged(Native Method)

   at java.net.URLClassLoader.findClass(URLClassLoader.java:360)

   at java.lang.ClassLoader.loadClass(ClassLoader.java:424)

   at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)

   at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

   ... 2 more

1 个答案:

答案 0 :(得分:1)

您引用的教程似乎使用Eclipse而不是专用的构建系统。每个严肃的项目都不应该依赖和IDE来构建,而是像Maven或Gradle这样的工具是一个不错的选择。

确保您的类路径上具有neo4j-server的所有传递依赖项。使用maven时,请使用pom.xml部分添加到dependencies

<dependency>
    <groupId>org.neo4j.app</groupId>
    <artifactId>neo4j-server</artifactId>
    <version>2.1.3</version>
</dependency>

如果是gradle,请在dependencies内使用:

compile 'org.neo4j.app:neo4j-server:2.1.3'