如何让java和neo4j在eclipse中工作

Lau*_*nce 5 java eclipse neo4j maven

我使用薄荷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>
Run Code Online (Sandbox Code Playgroud)

我的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();
    }
Run Code Online (Sandbox Code Playgroud)

当我尝试将其作为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
Run Code Online (Sandbox Code Playgroud)

Fra*_*eau 10

7474端口是HTTP端口.由于您正在使用该bolt://协议,因此您应该连接到该7687端口.或者实际上删除端口,因为它是默认值:

Driver driver = GraphDatabase.driver("bolt://localhost", AuthTokens.basic("neo4j", "neo4j"));
Run Code Online (Sandbox Code Playgroud)

通过取消注释conf/neo4j.conf(删除前面的内容#),确保Bolt协议在Neo4j实例上实际处于活动状态:

dbms.connector.bolt.address=0.0.0.0:7687
Run Code Online (Sandbox Code Playgroud)

或者至少限制本地连接:

dbms.connector.bolt.address=127.0.0.1:7687
Run Code Online (Sandbox Code Playgroud)