没有为此数据库实例注册名为`example.convertDirection`的过程

问题描述 投票:0回答:1

我正在尝试使用neo4J创建自己的自定义过程。我正在为windows运行neo4j安装程序(v3.2.6)。我按照这个tutorial创建了我自己的简单程序:

package example;
import java.util.List;

import org.neo4j.procedure.Description;
import org.neo4j.procedure.Name;
import org.neo4j.procedure.UserFunction;

public class ConvertDirection{

@UserFunction
@Description("example.convertDirection('v') - returns full direction name VERTICAL.")
public String convertDirection(
        @Name("string") String string) {
    if (string.equals(null)) {
        return null;
    }
    if(string.equalsIgnoreCase("v")){
        return "VERTICAL";
    } else if (string.equalsIgnoreCase("h")){
        return "HORIZONTAL";
    } else {
        return "BOTH";
    } 
}
}

我创建了自己的测试类并生成了运行mvn clean包的jar。

之后,我将procedure-template-1.0.0-SNAPSHOT放在我的两个插件文件夹中(C:\ Users \ var \ lib \ neo4j \ data \ databases \ graph.db \ plugins和C:\ Program Files \ Neo4j CE) 3.1.1 \插件)。

然后我按照建议的here更改了我的neo4j.conf以包含插件路径。我试过两种方式指向程序文件/插件和graph.db / plugins:

dbms.directories.plugins = c:/Users/var/lib/neo4j/data/databases/graph.db/plugins dbms.directories.plugins = c:/ Program \ Files / Neo4j \ CE \ 3.1.1 / plugins

重新启动服务器后,我仍然遇到此错误,我的程序未列出。

没有为此数据库实例注册名称为example.convertDirection的过程。请确保您已正确拼写过程名称并正确部署过程。

有谁知道这可能是什么?

maven neo4j cypher procedure neo4jclient
1个回答
1
投票

您创建了一个函数,而不是一个过程(请参阅代码中的@UserFunction)。

您应该看到它在call dbms.functions()中列出,并且作为函数,不需要CALL和YIELD,只需像任何其他函数一样使用它内联。

© www.soinside.com 2019 - 2024. All rights reserved.