当前位置: 首页 > 知识库问答 >
问题:

如何使用嵌入式Neo4j 2.0实例的webadmin接口?

易淳
2023-03-14

我有一个项目,它一直在运行嵌入式Neo4j 1.8。2加网络管理界面。

现在,我更新了项目,使其使用最新的Neo4j 2.0运行。1.尽管在这个过程中遇到了一些障碍(因为我使用的是Spring数据Neo4j),但最终一切都很顺利。

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

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

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

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

package com.example;

import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.MapConfiguration;
import org.neo4j.server.configuration.Configurator;
import org.neo4j.server.configuration.ThirdPartyJaxRsPackage;

import java.util.HashSet;
import java.util.Map;
import java.util.Set;

public class Neo4jServerConfig implements Configurator {

    private Configuration config;

    public Neo4jServerConfig(Map<String, String> config) {
        this.config = new MapConfiguration(config);
    }

    @Override
    public Configuration configuration() {
        return config;
    }

    @Override
    public Map<String, String> getDatabaseTuningProperties() {
        return null;
    }

    @Override
    public Set<ThirdPartyJaxRsPackage> getThirdpartyJaxRsClasses() {
        return new HashSet<>();
    }

    @Override
    public Set<ThirdPartyJaxRsPackage> getThirdpartyJaxRsPackages() {
        return new HashSet<>();
    }

}

以及bean定义。。。

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

但是Neo4j 2.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“图形数据库服务”...它说“bean必须是org.neo4j.kernel.图形数据库API”(这也是不建议的)

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

有线索吗?

提前谢谢。

共有3个答案

扈翰
2023-03-14

所以在OSX上验证了这一点;只是为了清楚,一旦你添加了POM更新和Spring配置,这就是你需要做的一切。然后浏览到localhost:7474给你你的对象图。

陆绍辉
2023-03-14

我花了比我愿意承认的时间更长的时间来工作。请看看这个pom的依赖关系,基本上2包括neo4j服务器和2泽西。您还必须配置WrappingNeoServerBootstrapper(已弃用)。

我的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>
公良修竹
2023-03-14

包装服务器引导程序

对于您来说,这是我的应用程序的示例代码,其中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”。对不起,我不知道怎么用Spring。。。但您可以使用好的类型来完成WrappingServerBootstrapper的包装。

干杯

 类似资料:
  • 本文向大家介绍Java如何使用Jetty实现嵌入式的Servlet容器,包括了Java如何使用Jetty实现嵌入式的Servlet容器的使用技巧和注意事项,需要的朋友参考一下 最近在项目中遇到关于jetty的问题,所以在网上做一些科普,接下来就给大家做一些分享: Jetty是一个Java实现的开源的servlet容器,它既可以像Tomcat一样作为一个完整的Web服务器和Servlet容器,同时也

  • 我有一个类,它有一个可嵌入的类: 我需要实例化“UserPK”,但它不起作用。救命啊! 我试图实例化它作为一个内部类,作为一个单一的类...它编译,但它不创建对象。

  • 我无融资创业新项目访问Neo4j数据与REST的例子。该示例使用嵌入式数据库,而不是独立的neo4j服务器,但我希望使用Neo4J webadmin界面来可视化我的数据。如何从此配置开始启用webadmin接口? (他们让WrappingNoServerBootstrapper与spring-data-neo4j一起使用WrappingNoServerBootstrapper,但答案中遗漏了很多知

  • 问题内容: 我正在从“ 使用REST访问Neo4j数据”示例中引导一个新项目。该示例使用嵌入式数据库而不是独立的neo4j服务器,但是我想使用Neo4J Webadmin界面来可视化我的数据。如何从此配置开始启用Webadmin界面? (他们让WrappingNeoServerBootstrapper与spring-data-neo4j一起使用WrappingNeoServerBootstrapp

  • 下面是一个我正在与SDR斗争的用例- 这是用户表和参考问题表 这是用户表和用户好友表 当我转到/users/{id}/userFriends时,默认情况下应该显示UserProjection中的firstname、lastname等 因此,我在UserRepository中启用了摘录投影,效果很好。我预计这里会有大约100个结果,所以如果这个结果没有分页的话就可以了。 但是,既然RefSecQue

  • 我最近用一个现有的proto 3代码库更新了最新的protoc和Go插件,但在新的未实现的服务器功能上遇到了麻烦。用于Grpc服务器的结构已经嵌入了另一个接口,该接口描述了此服务实现的方法。在将UnimplementedServer引用嵌入到我的结构中之后,我从编译器那里得到了一个不明确的错误,它告诉我我不再实现我的服务方法了。我构建代码的方式是否存在一些问题?要使用libprotoc 3.17.