Не работает 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")