作为远程数据库连接到嵌入式neo4j数据库

作为远程数据库连接到嵌入式neo4j数据库,neo4j,Neo4j,我在Kotlin有一个Spring boot项目,使用Neo4j 3.3.5作为嵌入式数据库。 测试数据库是否可访问(读写)。 现在我想使用neo4j desktop 1.0.24作为远程数据库访问数据库,以便以图形方式查看节点,并可能在外部添加我自己的节点 我目前使用以下方式访问数据库: private val curdir = System.getProperty("user.dir") val graphDb: GraphDatabaseService = GraphDatabaseFac

我在Kotlin有一个Spring boot项目,使用Neo4j 3.3.5作为嵌入式数据库。 测试数据库是否可访问(读写)。 现在我想使用neo4j desktop 1.0.24作为远程数据库访问数据库,以便以图形方式查看节点,并可能在外部添加我自己的节点

我目前使用以下方式访问数据库:

private val curdir = System.getProperty("user.dir")
val graphDb: GraphDatabaseService = GraphDatabaseFactory().newEmbeddedDatabase(File("${curdir}/database"))
我找到的最新指南是

简言之,上述指南中提供的配置为:

GraphDatabaseService db = new GraphDatabaseFactory().newEmbeddedDatabaseBuilder(DB_DIR)
                .setConfig(ShellSettings.remote_shell_enabled, "true")
                .setConfig(ShellSettings.remote_shell_port, "5555")
                .newGraphDatabase();
但这似乎不起作用(未解析的引用外壳设置)

在当前(3.3)文档中搜索后,我发现
setConfig
有3种风格,其中两种已被弃用:

setConfig(Map<String,String> config) // deprecated
setConfig(String name, String value) // deprecated

setConfig(Setting<?> setting, String value)
虽然适用于Spring,但无法通过配置从neo4j桌面访问:

Database Name: Database
Host: localhost
Bolt Port: 5555
username: blank
password: blank

我还可以尝试什么?

桌面使用的不是
shell
,而是
bolt协议。
因此,您需要在配置中启用它:

GraphDatabaseSettings.BoltConnector bolt = GraphDatabaseSettings.boltConnector( "0" );

GraphDatabaseService graphDb = new GraphDatabaseFactory()
        .newEmbeddedDatabaseBuilder( DB_PATH )
        .setConfig( bolt.type, "BOLT" )
        .setConfig( bolt.enabled, "true" )
        .setConfig( bolt.address, "localhost:7687" )
        .newGraphDatabase();
您还必须在项目中添加库:

<dependency>
    <groupId>org.neo4j</groupId>
    <artifactId>neo4j-bolt</artifactId>
    <version>3.3.5</version>
  </dependency>

org.neo4j

这确实应该起作用,但由于某些原因不起作用。虽然我从neo4j桌面上得到了这个错误:无法建立远程连接:使用指定的配置无法访问数据库,但我确实收到了“非WebSocket握手请求:缺少升级”如果我尝试从浏览器连接,因此连接已打开,但数据库桌面应用程序仍无法连接…您是否在同一台主机上?或者它是远程的?它与开发过程中使用的主机(localhost)相同。
<dependency>
    <groupId>org.neo4j</groupId>
    <artifactId>neo4j-bolt</artifactId>
    <version>3.3.5</version>
  </dependency>