连接Neo4J Java驱动程序后,Neo4J Browser ServiceUnavailable失败

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了连接Neo4J Java驱动程序后,Neo4J Browser ServiceUnavailable失败相关的知识,希望对你有一定的参考价值。

我经常在http://localhost:7474/browser/上使用Neo4J Browser。但是,昨天我使用java driver连接到Neo4J并执行查询。从那以后,我无法登录Neo4J浏览器。

我使用sudo neo4j start从终端(我在ubuntu上)启动Neo4J,这是输出 -

 % sudo neo4j start
Active database: graph.db
Directories in use:
  home:         /var/lib/neo4j
  config:       /etc/neo4j
  logs:         /var/log/neo4j
  plugins:      /var/lib/neo4j/plugins
  import:       /var/lib/neo4j/import
  data:         /var/lib/neo4j/data
  certificates: /var/lib/neo4j/certificates
  run:          /var/run/neo4j
Starting Neo4j.
WARNING: Max 1024 open files allowed, minimum of 40000 recommended. See the Neo4j manual.
/usr/share/neo4j/bin/neo4j: line 411: /var/run/neo4j/neo4j.pid: No such file or directory

然后,我访问localhost:7474,它给了我:server connect屏幕,但是一旦我输入密码,我得到这个错误 -

ServiceUnavailable:WebSocket连接失败。由于Web浏览器中的安全限制,此Neo4j驱动程序无法使用此故障原因。请使用您的浏览器开发控制台确定失败的根本原因。常见的原因包括数据库

截图 -

enter image description here

通常,唯一的身份验证字段是“用户名”和“密码”。我不认为我以前见过那里的“主持人”字段。

我搜索了这个错误,遇到了question with similar error和一篇关于Neo4J KB的文章说 -

在Neo4j 3.0及其Bolt协议的实现中,如果远程浏览器连接到Neo4j(http://:7474)并尝试进行身份验证,则可能会遇到以下错误:

但我不认为这种情况适用于此。

我怎样才能解决这个问题?

答案

正如logisima指出的那样,neo4j与Java 9不兼容。您可以安装多个版本的Java并使用环境变量在它们之间进行交换。例如,在MacOS上,你的.bash_profile中可能有这两行

export JAVA_HOME=$(/usr/libexec/java_home)
export JAVA8_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home

第一行获取正常安装的java home,第二行指向旧java8位置。

然后在启动neo4j实例之前,执行例如:

export JAVA_HOME=$JAVA8_HOME
$NEO4J_HOME/bin/neo4j start

以上是关于连接Neo4J Java驱动程序后,Neo4J Browser ServiceUnavailable失败的主要内容,如果未能解决你的问题,请参考以下文章

Java连接Neo4j的两种方式

OutOfMemoryError:Neo4j 中的 Java 堆空间

neo4j:在 java 中发送的有限查询

neo4j 密码匹配命令连接

OutOfMemoryError:Neo4j中的Java堆空间

neo4j如何与其它系统集成