gpt4 book ai didi

java - 我怎样才能让 java 和 neo4j 在 eclipse 中工作

转载 作者:搜寻专家 更新时间:2023-10-31 08:32:06 26 4
gpt4 key购买 nike

我使用的是 mint 17.2 并且有 neo4j 3.06 社区版,它在 localhost:7474 上运行良好。

我希望使用 Eclipse Mars 2 在 Java 1.08 中编程,但我无法让它工作。

我正在使用一个 maven 项目并且在我的 pom.xml 中包含以下内容

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.geekcap.informit</groupId>
<artifactId>neo4j-sample-app</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>neo4j-sample-app</name>
<url>http://maven.apache.org</url>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.neo4j.driver</groupId>
<artifactId>neo4j-java-driver</artifactId>
<version>1.0.3</version>
</dependency>
</dependencies>
</project>

我的 app.java 文件中有以下内容

package com.geekcap.informit.neo4j_sample_app;


import org.neo4j.driver.v1.*;

public class App
{

public static void main( String[] args )
{
Driver driver = GraphDatabase.driver("bolt://localhost:7474", AuthTokens.basic("neo4j", "neo4j"));
Session session = driver.session();

session.run("CREATE (a:Person {name:'Arthur', title:'King'})" );

StatementResult result =
session.run("Match (a:Person) WHERE a.name = 'Arthur' RETURN a.name AS name, a.title AS title");
while (result.hasNext()) {
Record record = result.next();
System.out.println(record.get("title").asString() + " " +
record.get("name").asString());
}

session.close();
driver.close();
}

当我尝试将其作为 Java 应用程序运行时出现以下错误。

Exception in thread "main" org.neo4j.driver.v1.exceptions.ClientException: Unable to process request: Unrecognized SSL message, plaintext connection?
at org.neo4j.driver.internal.connector.socket.SocketClient.start(SocketClient.java:87)
at org.neo4j.driver.internal.connector.socket.SocketConnection.<init>(SocketConnection.java:63)
at org.neo4j.driver.internal.connector.socket.SocketConnector.connect(SocketConnector.java:52)
at org.neo4j.driver.internal.pool.InternalConnectionPool$1.allocate(InternalConnectionPool.java:191)
at org.neo4j.driver.internal.pool.InternalConnectionPool$1.allocate(InternalConnectionPool.java:180)
at org.neo4j.driver.internal.pool.ThreadCachingPool.allocate(ThreadCachingPool.java:212)
at org.neo4j.driver.internal.pool.ThreadCachingPool.acquireFromGlobal(ThreadCachingPool.java:164)
at org.neo4j.driver.internal.pool.ThreadCachingPool.acquire(ThreadCachingPool.java:118)
at org.neo4j.driver.internal.pool.InternalConnectionPool.acquire(InternalConnectionPool.java:109)
at org.neo4j.driver.internal.InternalDriver.session(InternalDriver.java:53)
at com.geekcap.informit.neo4j_sample_app.App.main(App.java:12)
Caused by: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
at sun.security.ssl.EngineInputRecord.bytesInCompletePacket(EngineInputRecord.java:156)
at sun.security.ssl.SSLEngineImpl.readNetRecord(SSLEngineImpl.java:868)
at sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:781)
at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:624)
at org.neo4j.driver.internal.connector.socket.TLSSocketChannel.unwrap(TLSSocketChannel.java:186)
at org.neo4j.driver.internal.connector.socket.TLSSocketChannel.runHandshake(TLSSocketChannel.java:127)
at org.neo4j.driver.internal.connector.socket.TLSSocketChannel.<init>(TLSSocketChannel.java:95)
at org.neo4j.driver.internal.connector.socket.TLSSocketChannel.<init>(TLSSocketChannel.java:77)
at org.neo4j.driver.internal.connector.socket.TLSSocketChannel.<init>(TLSSocketChannel.java:70)
at org.neo4j.driver.internal.connector.socket.SocketClient$ChannelFactory.create(SocketClient.java:235)
at org.neo4j.driver.internal.connector.socket.SocketClient.start(SocketClient.java:74)
... 10 more

最佳答案

7474 端口是 HTTP 端口。由于您使用的是 bolt:// 协议(protocol),因此您应该连接到 7687 端口。或者实际删除端口,因为它是默认值:

Driver driver = GraphDatabase.driver("bolt://localhost", AuthTokens.basic("neo4j", "neo4j"));

还要确保 Bolt 协议(protocol)在 Neo4j 实例上实际处于 Activity 状态,方法是在 conf/neo4j.conf 中取消注释(删除前面的 #):

dbms.connector.bolt.address=0.0.0.0:7687

或者至少,限制为本地连接:

dbms.connector.bolt.address=127.0.0.1:7687

关于java - 我怎样才能让 java 和 neo4j 在 eclipse 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39722278/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com