Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ColdFusion连接到neo4j_Coldfusion_Neo4j - Fatal编程技术网

使用ColdFusion连接到neo4j

使用ColdFusion连接到neo4j,coldfusion,neo4j,Coldfusion,Neo4j,这里有人使用ColdFusion成功连接到neo4j吗 我能够使用本指南作为起点连接到neo4j 1.6.1: . 然而,这是短暂的成功。此后,我卸载了neo4j 1.6.1并安装了1.7 我现在在windows XP上运行Apache,CF 9.0.1,作为本地开发设备。我在CF类路径中添加了…\neo4j-community-1.7\lib,库列在CF服务器Java类路径中。neo4j运行良好,因为我可以使用他们的管理员界面:。CF和Apache也运行良好。我每天都用 虽然下面的代码可以工作

这里有人使用ColdFusion成功连接到neo4j吗

我能够使用本指南作为起点连接到neo4j 1.6.1: . 然而,这是短暂的成功。此后,我卸载了neo4j 1.6.1并安装了1.7

我现在在windows XP上运行Apache,CF 9.0.1,作为本地开发设备。我在CF类路径中添加了
…\neo4j-community-1.7\lib
,库列在CF服务器Java类路径中。neo4j运行良好,因为我可以使用他们的管理员界面:。CF和Apache也运行良好。我每天都用

虽然下面的代码可以工作,但我真的很想“看看”使用neo4j web Administrator的情况。因此,在CF应用程序中使用数据时,我可以协调学习neo4j

代码:(有效)

所以我尝试连接到neo4j db graph.db。然而,代码失败了

代码:(失败)

错误:

    Object instantiation exception.
    An exception occurred while instantiating a Java object. The class must not be an interface or an abstract class. Error: ''. 
如果我删除
graph.db中的
,它将在neo4j数据文件夹中创建一个“graphdb”,并成功连接到它。但是,该数据库无法通过其管理员查看:(


我是一个新手,所以请不要回答。

好的,我认为你试图实现的是不可能的。不可能在CF中访问Neo4J(通过Java)并让管理界面工作(注意事项1适用)

如果您已将Neo4J软件包的所有JAR放入Adobe CF,则Neo4J管理界面很可能正在查看其自己的Neo4J文件系统。创建嵌入式服务器时,它不会连接到同一数据库,因为它根本无法连接

嵌入式Neo4J不像标准数据库连接那样工作。一个嵌入式Neo4J读取和写入一个目录位置(关键字:directory,它不会打开一个文件,而是打开一大堆文件)。没有两个Neo4J实例可以访问同一个目录位置(注意事项2适用)

好的,注意事项:

1-从理论上讲,可以通过编程手动启动管理界面,使其使用您通过Java创建的嵌入式服务器。Java代码看起来足够简单(取自):

我没有做到这一点,主要是因为管理服务器有一堆与我的其余设置不兼容的依赖项,所以我不能建议上面的工作如何

2-可以让1个读/写Neo4J访问一个位置,然后让多个只读Neo4J(EmbeddedReadOnlyGraphDatabase)读取同一位置(但我从未尝试过)

您确实可以选择使用REST接口——手动或通过(虽然速度有点慢)

在深入讨论此问题之前,阅读部署场景文档可能是值得的


至少有一个CF/Neo4J桥接器在那里,但它相当不完整。我有一个我正在研究的,但我需要弄清楚我是否可以将其开源!

只是对otupman评论的一个小补充。我可以确认他从CF连接到管理接口的理论。将以下JAR添加到CF类路径似乎足够了o启动并运行基本功能。如果使用更高级的功能,可能需要额外的JAR。请注意,我使用的是Tomcat,因此具体的JAR可能与您的环境略有不同

  • neo4j-community-1.7/lib/*.
    (整个目录)
  • neo4j-community-1.7/system/lib
    :(仅以下jar)

    • asm-3.1.jar
    • asm-analysis-3.2.jar
    • asm-commons-3.2.jar
    • asm-tree-3.2.jar
    • asm-util-3.2.jar
    • commons-configuration-1.6.jar
    • jackson-core-asl-1.8.3.jar
    • jackson-jaxrs-1.8.3.jar
    • jackson-mapper-asl-1.8.3.jar
    • jersey-core-1.9.jar
    • jersey-multipart-1.9.jar
    • jersey-server-1.9.jar
    • jetty-6.1.25.jar
    • jetty-util-6.1.25.jar
    • neo4j-server-1.7-static-web.jar
    • neo4j-server-1.7.jar
    • rrd4j-2.0.7.jar
然后在onApplicationStart中启动服务器和数据库

    factory = createObject("java", "org.neo4j.graphdb.factory.GraphDatabaseFactory");
    dbroot = ExpandPath("/neo4jtest/");
    graphDb = factory.newEmbeddedDatabase(dbroot & 'myFirstGraphDB');

    Bootstrapper = createObject("java", "org.neo4j.server.WrappingNeoServerBootstrapper");
    graphServer = Bootstrapper.init( graphDb );
    graphServer.start();

    application.graphServer = graphServer;
    application.graphDb = graphDB;
并在OnApplication中关闭了这两个

    application.graphDb.shutDown();
    application.graphServer.stop();

编辑:经过一些进一步的测试后,我认为最好在OnServerStart中加载它们一次。然后使用关机钩子关闭它们。但由于这只是用于本地开发框,所以不太重要。

所以基本问题是,您可以创建graphdb文件,但无法创建扩展名为.db的文件,并且错误为init()上的ccurs。这表明“类”是init所需的。是否有“扩展”您应该传递的参数?您引用的示例中不包含.db。我不确定Mark-在这一点上,我试图在连接到DSN和向其提供查询-到neo4j需要之间画出平行线…有趣的是,graphdb连接发生了一些事情,它现在也抛出了这个错误…如果我只是添加一个“2”所以我要去“graphdb2”-它创建了一个新的DB文件夹等,并成功地阻止了-但我相信这也会改变-它一直被“锁定”或其他东西-我只是不知道为什么…+1。很好的解释。使用你的提示,我确认了#1确实有效。嗯-似乎有些混乱-可能是我的错…ne04j配备了一个web管理员-但我并不是想把自己和webadmin联系起来,我只是想用webadmin来"看看“我在数据库中得到了什么,我用CF连接到了数据库中……也许这更像是一个neo4J问题——而不是CF问题……因为我似乎能够通过CF创建和插入数据……我在获取相关数据方面有很多默契……但现在我只想通过“网站管理员”的“眼睛”来“看到”数据,这样我就可以直观地确认它在几乎所有的Neo4J部署中,让webadmin查看Neo4J数据库的数据只能通过一个tw来完成
// Create your embedded graph db somewhere
src = CreateObject("java", "org.neo4j.server.WrappingNeoServerBootstrapper")
      .init(graphDb);
srv.start();
// The server is now running
// until we stop it:
srv.stop();
    factory = createObject("java", "org.neo4j.graphdb.factory.GraphDatabaseFactory");
    dbroot = ExpandPath("/neo4jtest/");
    graphDb = factory.newEmbeddedDatabase(dbroot & 'myFirstGraphDB');

    Bootstrapper = createObject("java", "org.neo4j.server.WrappingNeoServerBootstrapper");
    graphServer = Bootstrapper.init( graphDb );
    graphServer.start();

    application.graphServer = graphServer;
    application.graphDb = graphDB;
    application.graphDb.shutDown();
    application.graphServer.stop();