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
如何将webadmin界面与嵌入式Neo4j 2.0实例一起使用?_Neo4j_Spring Data Neo4j - Fatal编程技术网

如何将webadmin界面与嵌入式Neo4j 2.0实例一起使用?

如何将webadmin界面与嵌入式Neo4j 2.0实例一起使用?,neo4j,spring-data-neo4j,Neo4j,Spring Data Neo4j,我有一个项目,它一直在运行嵌入式Neo4j 1.8.2 plus web管理界面 现在,我更新了项目,使其使用最新的Neo4j 2.0.1运行。虽然在这个过程中有一些障碍(因为我使用的是Spring数据Neo4j),但最终一切都很顺利 但目前我一直在用它运行web管理员 如有任何建议,将不胜感激 这是我在1.8版本中使用的配置 (代码段中引用的配置类) package.com.example; 导入org.apache.commons.configuration.configuration; 导

我有一个项目,它一直在运行嵌入式Neo4j 1.8.2 plus web管理界面

现在,我更新了项目,使其使用最新的Neo4j 2.0.1运行。虽然在这个过程中有一些障碍(因为我使用的是Spring数据Neo4j),但最终一切都很顺利

但目前我一直在用它运行web管理员

如有任何建议,将不胜感激

这是我在1.8版本中使用的配置

(代码段中引用的配置类)

package.com.example;
导入org.apache.commons.configuration.configuration;
导入org.apache.commons.configuration.MapConfiguration;
导入org.neo4j.server.configuration.Configurator;
导入org.neo4j.server.configuration.ThirdPartyJaxRsPackage;
导入java.util.HashSet;
导入java.util.Map;
导入java.util.Set;
公共类Neo4jServerConfig实现了Configurator{
私有配置;
公共Neo4jServerConfig(映射配置){
this.config=新映射配置(config);
}
@凌驾
公共配置(){
返回配置;
}
@凌驾
公共地图getDatabaseTuningProperties(){
返回null;
}
@凌驾
公共集getThirdpartyJaxRsClasses(){
返回新的HashSet();
}
@凌驾
公共集getThirdpartyJaxRsPackages(){
返回新的HashSet();
}
}
还有bean定义 ... ... ... ...

如前所述。。。这与1.8嵌入式Neo4j的预期效果相同

但是NEO4J2.0下的初始化发生了很大的变化。所以我不得不使用下面的bean定义来重新运行

        <!-- neo4j server configuration -->
    <util:map id="neo4jConfig">
        <entry key="allow_store_upgrade" value="true"/>
        <entry key="enable_remote_shell" value="true"/>
        <entry key="online_backup_enabled" value="true"/>
        <entry key="node_auto_indexing" value="true"/>
        <entry key="node_keys_indexable" value="id,name,type,__type__"/>
        <entry key="relationship_auto_indexing" value="true"/>
    </util:map>

    <bean id="graphDbFactory" class="org.neo4j.graphdb.factory.GraphDatabaseFactory"/>

    <bean id="graphDbBuilder" factory-bean="graphDbFactory" factory-method="newEmbeddedDatabaseBuilder">
        <constructor-arg index="0" value="${neo4j.db.path}"/>
    </bean>

    <bean id="graphDbBuilderFinal" factory-bean="graphDbBuilder" factory-method="setConfig">
        <constructor-arg ref="neo4jConfig"/>
    </bean>

    <bean id="graphDatabaseService" factory-bean="graphDbBuilderFinal" factory-method="newGraphDatabase" destroy-method="shutdown" />

之后,我在这个bean定义中得到了错误标记

    <bean id="serverWrapper" class="org.neo4j.server.WrappingNeoServerBootstrapper" init-method="start" destroy-method="stop">
        <constructor-arg index="0" ref="graphDatabaseService" /> 
        <constructor-arg index="1" ref="config"/>
    </bean>

首先,“org.neo4j.server.WrappingNeoServerBootstrapper”现在已经被弃用了——我可以使用其他选项吗

其次,它抱怨错误的构造函数arg“graphDatabaseService”。。。它说“bean必须是org.neo4j.kernel.GraphDatabaseAPI的”(这也是不推荐的)

服务器启动时(至少我可以从jetty日志中看到)没有错误,但尝试浏览到localhost:28473时没有响应

有线索吗


提前感谢。

不推荐使用WrappingServerBootstrapper和GraphDatabaseAPI,但目前没有其他选项。。。所以你必须使用它们

对于您,这是我的应用程序的示例代码,其中webadmin是从嵌入式neo4j 2.0.1服务器启动的:

val graphdb = new GraphDatabaseFactory()
          .newEmbeddedDatabaseBuilder(DBPath)
          .loadPropertiesFromFile(neo4jPropertiesPath)
          .newGraphDatabase()
          .asInstanceOf[GraphDatabaseAPI}

val srv = new WrappingNeoServerBootstrapper(graphdb, config);
srv.start()
因此,您必须将“graphDatabaseService”强制转换为“GraphDatabaseAPI”。 对不起,我不知道怎么用春天。。。但您可以使用好的类型来完成WrappingServerBootstrapper的包装


欢呼声

花了我很长的时间才让这一切顺利进行。请看一下这些依赖项,基本上包括两个neo4j服务器和两个Jersey服务器。您还必须配置WrappingServerBootstrapper(已弃用)

我的POM从Neo4J中排除了CH.QOS日志记录内容,以支持我自己的日志配置

我也使用了Spring,并将大部分配置外部化。你可以看到那个文件

完成这一小部分后,只需访问端口7474上的localhost

<util:map id="config">
    <entry key="remote_shell_enabled" value="true"/>
</util:map>

<bean id="graphDbFactory" class="org.neo4j.graphdb.factory.GraphDatabaseFactory"/>

<bean id="graphDbBuilder" factory-bean="graphDbFactory" factory-method="newEmbeddedDatabaseBuilder">
    <constructor-arg value="${neo4j.datastore}"/>
</bean>

<bean id="graphDbBuilderFinal" factory-bean="graphDbBuilder" factory-method="setConfig">
    <constructor-arg ref="config"/>
</bean>

<bean id="graphDatabaseService" factory-bean="graphDbBuilderFinal" factory-method="newGraphDatabase"
      destroy-method="shutdown"/>

<bean id="serverWrapper" class="org.neo4j.server.WrappingNeoServerBootstrapper" init-method="start"
      destroy-method="stop">
    <constructor-arg ref="graphDatabaseService"/>
</bean>


因此在OSX上验证了这一点;要清楚的是,一旦您添加了POM更新和spring配置,这就是您需要做的所有事情。然后浏览localhost:7474就可以得到您的对象图。

我的问题实际上并不是针对不推荐的类,这或多或少是一个附带问题。相反,我正在寻找一种让web界面运行的方法。如前所述,服务器启动,web界面在MyJetty中注册。但我一试着打电话,什么也没发生。关于这一点,我可以想象,现在有另一种方法可以正确地实例化它。但是谢谢你的回答:)谢谢你的回答,谢谢你的努力让这一切顺利进行。但不幸的是,这对我没有帮助…:(嗯,我刚刚在Windows上的一个从头开始的构建上尝试了这个功能(我通常使用OSX)。当我直接转到localhost:7474时,浏览器肯定会为我弹出。您也可以转到localhost:7474/浏览器您尝试访问的URL和错误(如果有)你看到了吗?顺便说一句,两台neo4j服务器包含的原因是一个用于浏览器界面,另一个用于neo4j嵌入式。我们必须匹配neo4j服务器所需的Jersey的确切版本,并包含这些Jersey组件,然后在工作之前进行干净的重建。我们使用SBT:“org.neo4j.app”%“neo4j服务器”%neo4jVersion,“org.neo4j.app”%“neo4j服务器”%neo4jVersion分类器“静态web”、“com.sun.jersey”%“jersey核心”%“1.18.1”、“com.sun.jersey”%“jersey服务器”%“1.18.1”是否将org.neo4j.server.webserver.port设置为28473并覆盖默认端口7474?
<util:map id="config">
    <entry key="remote_shell_enabled" value="true"/>
</util:map>

<bean id="graphDbFactory" class="org.neo4j.graphdb.factory.GraphDatabaseFactory"/>

<bean id="graphDbBuilder" factory-bean="graphDbFactory" factory-method="newEmbeddedDatabaseBuilder">
    <constructor-arg value="${neo4j.datastore}"/>
</bean>

<bean id="graphDbBuilderFinal" factory-bean="graphDbBuilder" factory-method="setConfig">
    <constructor-arg ref="config"/>
</bean>

<bean id="graphDatabaseService" factory-bean="graphDbBuilderFinal" factory-method="newGraphDatabase"
      destroy-method="shutdown"/>

<bean id="serverWrapper" class="org.neo4j.server.WrappingNeoServerBootstrapper" init-method="start"
      destroy-method="stop">
    <constructor-arg ref="graphDatabaseService"/>
</bean>