You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Maven开发Neo4j User-Defined Procedures遇更新失效问题咨询

Neo4j自定义存储过程/函数更新失效问题解决方法
  • 首先确认Neo4j服务是否重启:Neo4j仅在启动阶段扫描plugins目录加载过程、函数,修改jar包后必须重启Neo4j服务才会生效,旧的过程也只会在重启后根据新的jar包内容重新加载。执行重启命令前建议先停止服务,确认无运行中的事务再执行重启操作。
  • 检查plugins目录是否存在重复旧jar包:如果新打包的jar文件名和旧包不一致,两个jar包会同时被加载,优先加载的旧包类会覆盖新包逻辑,导致新函数不生效、旧过程无法删除。需要删除目录下所有该项目的旧jar包,仅保留最新打包的jar文件。
  • 验证新增函数的注解与包扫描配置:
    1. 新增的函数类上必须正确标注@UserFunction(自定义函数)或@Procedure(自定义过程)注解,注解的name属性值需符合命名规范无冲突
    2. 确认项目的包扫描路径包含新增的函数类,没有被Maven的编译排除规则过滤
    3. 可以执行jar tf 你的jar包名.jar命令查看打包产物,确认新增的函数类对应的.class文件存在于jar包中
  • 检查Neo4j配置的过程/函数白名单:打开conf/neo4j.conf文件,确认dbms.security.procedures.allowlist、dbms.security.procedures.unrestricted两个配置项已经添加了新增函数所属的包名,否则新增的函数会被Neo4j的安全机制拦截,无法被查询和调用。
  • 若使用集群部署,需同步更新所有节点的plugins目录下的jar包,再滚动重启所有节点,仅更新单节点会导致调用时路由到未更新的节点,出现函数不存在的报错。
  • 重启完成后需要重新连接cypher-shell,再执行call dbms.procedures();或者call dbms.functions();查询新增的内容,避免旧会话的缓存影响查询结果。

内容的提问来源于stack exchange,提问作者ochst

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 20:06:01