java - @PluginTarget(Node.class) 未注册为 neo4j 插件

标签 java curl neo4j

下面的简单类不会显示为插件

package com.danmacias.neoneoteplugin;

import java.util.ArrayList;
import java.util.List;

import org.neo4j.graphdb.*;
import org.neo4j.server.plugins.*;
import org.neo4j.graphalgo.*;
//import org.neo4j.tooling.GlobalGraphOperations;

@Description( "An extension to the Neo4j Server for getting all nodes or relationships" )
public class GetPaths extends ServerPlugin
{
  @Name( "breadth_first_paths" )
  @Description( "Breadth First Traversal of a specific node." )
  @PluginTarget( Node.class )
  public Iterable<Path> getPaths( @Source Node graphDb )
  {
    ArrayList<Path> paths = new ArrayList<>();
    return paths;
  }
}

curl 返回

{                                                                                                                              
  "extensions" : {
    "GetAll" : {
      "get_all_nodes" : "http://localhost:7474/db/data/ext/GetAll/graphdb/get_all_nodes"
    }
    ...
},

但是当我用 GraphDatabaseService.class 替换 Node.class 的两个实例时,它可以很好地识别该插件。为什么它不接受节点?

此外,/var/logs/neo4j 没有显示与此相关的任何错误

最佳答案

不是 100% 确定,但我认为通过使用 @PluginTarget(Node.class) 锚定在节点级别的插件不会出现在全局扩展中。相反,当通过 REST API 检索节点时,有一个 extensions block 以及引用基于节点的插件。

关于java - @PluginTarget(Node.class) 未注册为 neo4j 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26601202/

相关文章:

java - 使用外键从 JSON 反序列化

bash - 在 bash 中将条件参数传递给curl

linux - 在后台使用curl_exec发布数据返回0

php - 未定义的常量 CURLOPT_GET - 假设为 'CURLOPT_GET'

java - Neo4j:如何使用 java api 在 neo4j 中打开现有数据库?

java - 服务层私有(private)方法

java - Datastax java 驱动程序 3.0.0 未找到枚举注释

java - 如何模拟快餐店的顾客

algorithm - 使用 Neo4j 进行基于内容的过滤?

neo4j - Rest配置中使用Neo4jTemplate保存数据太慢