首页 > 解决方案 > 独立 Neo4j 服务器的附加类路径

问题描述

我们想要运行需要外部 JAR 和配置的 neo4j 扩展(REST API)。

尽管我们可以将 jars 添加到{NEO4J_HOME}/plugin/目录中,但我们希望依赖于已经设置好的环境,包括(例如)一些/opt/product/lib//var/opt/product/conf/文件夹。

这在使用 Embedded Neo4j Server 时当然非常简单,但是在使用 Standalone Neo4j Server 时如何做同样的事情呢?

我们能做到吗?通过配置?通过任何幕后技巧?

注意:我们使用的是 Neo4j v3.2+,它使用 PowerShell 脚本启动。

标签: javaneo4j

解决方案


通过像这样编辑Get-Java.ps1PowerShell 脚本:

# Parse Java config settings - Additional ClassPath
$option = (Get-Neo4jSetting -Name 'dbms.jvm.additional.classpath' -Neo4jServer $Neo4jServer)
$ClassPath="$ClassPath;$([System.Environment]::ExpandEnvironmentVariables($option.Value))"
Write-Warning "WARNING: using classpath: $ClassPath";

$ShellArgs = @("-cp `"$($ClassPath)`""`
              ,'-server' `
              ,'-Dlog4j.configuration=file:conf/log4j.properties' `
              ,'-Dneo4j.ext.udc.source=zip-powershell' `
              ,'-Dorg.neo4j.cluster.logdirectory=data/log' `
              #,'-agentlib:jdwp=transport=dt_socket,address=8998,server=y' `
  )

并添加以下配置neo4j.conf

#********************************************************************
# JVM Parameters
#********************************************************************

dbms.jvm.additional.classpath=%MY_PRODUCT%/lib/*;%MY_PRODUCT%/conf/*

但如前所述,这需要手动编辑 Neo4j PowerShell 脚本,这不太可靠。

可以将其添加为受支持的选项吗?


推荐阅读