Не работает Java-соединение Neo4j

    import org.neo4j.driver.internal.spi.*;
import org.neo4j.driver.v1.*;
import org.neo4j.driver.v1.Driver;
import org.neo4j.jdbc.ResultSet;
import org.neo4j.jdbc.bolt.BoltConnection;
import org.neo4j.jdbc.bolt.BoltDriver;


import static org.neo4j.driver.v1.Config.build;
import static org.neo4j.driver.v1.Values.parameters;



public class Main {
    static final String url1 = "bolt://127.0.0.1:7687";
    static final String url2 = "http://localhost:7474";

    static final String url3 = "bolt://localhost:7474";
    static final String url4 = "bolt://neo4j:neo4j@localhost";

    static final String url5 = "bolt://localhost";

    public static void main(String[] args) {
        System.out.println("Hello World!");

        Config noSSL = build()
                .withEncryptionLevel(Config.EncryptionLevel.NONE).toConfig();

        Config.ConfigBuilder builder = build();
        builder.withEncryption().toConfig();
      Config config=  builder.withoutEncryption().toConfig();

        Driver driver = GraphDatabase.driver( /*Util.getNeo4jUrl()*/ url5,  AuthTokens.basic( "neo4j", "neo4j" ),config );


        try (Session session = driver.session()){
            if(session.isOpen() == false){
                System.out.println("sesion is closed");
                return;
            }
            session.run( "CREATE (a:Person {name: {name}, title: {title}})",
                    parameters( "name", "Arthur", "title", "King" ) );

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

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


    }
}

Вот мой код c&p из примера на стартовой странице. Я перепробовал все URL, а также 2 конфига ("noSSL" устарела)

Я всегда получаю это сообщение, когда пытаюсь использовать url5, url4 и url1.

Исключение в потоке "main" org.neo4j.driver.v1.exceptions.AuthenticationException: клиент не авторизован из-за ошибки аутентификации.

Я всегда вхожу с этими учетными данными в браузере " http://localhost:7474/browser/"

1 ответ

Попробуйте изменить эти строки:

Config noSSL = build().withEncryptionLevel(Config.EncryptionLevel.NONE).toConfig();

Config.ConfigBuilder builder = build();
builder.withEncryption().toConfig();
Config config=  builder.withoutEncryption().toConfig();

Driver driver = GraphDatabase.driver( /*Util.getNeo4jUrl()*/ url5, AuthTokens.basic( "neo4j", "neo4j" ),config );

по этим:

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

Установить новый пароль:

удалить файл:

neo4j-community-3.5.2\data\dbms\auth

выполнить в каталоге neo4j-community-3.5.2\bin:

neo4j-admin set-initial-password NewPassword

то есть например:

neo4j-admin set-initial-password neo4j

исходный пользователь: neo4j

то есть вы можете войти с помощью:

AuthTokens.basic("neo4j", "neo4j")
Другие вопросы по тегам