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

嵌入式neo4j与Spring引导

蒋啸
2023-03-14

我试图配置嵌入式neo4jSpring启动。但得到这么多的麻烦与版本不同的包我想出了这个

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-neo4j</artifactId>
            <version>1.5.8.RELEASE</version>
        </dependency>


        <dependency>
            <groupId>org.neo4j</groupId>
            <artifactId>neo4j-ogm-embedded-driver</artifactId>
            <version>2.1.6</version>
            <scope>compile</scope> <!--compatible with spring-boot-starter-data-neo4j 1.5.8.RELEASE-->
        </dependency>


        <dependency>
            <groupId>org.neo4j</groupId>
            <artifactId>neo4j</artifactId>
            <version>3.1.0</version>
            <scope>runtime</scope>
        </dependency>

这是图形模块的依赖项,它是rest模块的依赖项。

当我启动服务器时,一切都正常,但是当我试图用这段代码访问neo4j服务器时。

@Service
public class FileBasedImportServiceImpl implements ImportService {

private Session session;

@Autowired
public FileBasedImportServiceImpl(Session session) {
    this.session = session;
}

@Transactional
public void clearDatabase() {
    session.purgeDatabase();
}

@Transactional
public void load() {
    StringBuilder sb = new StringBuilder();
    BufferedReader reader = new BufferedReader(new InputStreamReader(Thread.currentThread().getContextClassLoader().getResourceAsStream("school.cql")));
    String line;
    try {
        while ((line = reader.readLine()) != null) {
            sb.append(line);
            sb.append(" ");
        }
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
    String cqlFile = sb.toString();
    session.query(cqlFile, Collections.EMPTY_MAP);
}
}

通过在控制器中调用load()方法,我得到了拒绝的连接。

Caused by: org.apache.http.conn.HttpHostConnectException: Connect to localhost:7474 [localhost/127.0.0.1] failed: Connection refused (Connection refused)

我认为嵌入式neo4j没有启动,这就是原因。那么如何启动嵌入式服务器呢。我想如果我使用spring boot,它会自动启动,但事实并非如此。

注:文件school。cql包含cypher查询这是我遵循的项目https://github.com/neo4j-examples/sdn-university

我已经将注释添加到我的主类@EntityScan(“com”)

谢谢你。

使现代化

这是Spring应用程序配置注释

@ComponentScan(basePackages={"com"})
@Configuration
@EnableJpaRepositories("com.repository")
@EntityScan(basePackages = {"com.domain", "org.springframework.data.jpa.convert.threeten"})
@EnableConfigurationProperties
@EnableAutoConfiguration
@EnableScheduling
@SpringBootApplication(exclude = org.activiti.spring.boot.SecurityAutoConfiguration.class)
@EnableNeo4jRepositories("com.graph.repository")
public class Application extends SpringBootServletInitializer {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);

    }

就像我说的,我已经遵循了这个教程https://github.com/neo4j-examples/sdn-university我所做的唯一不同的事情是制作两个maven模块,而不是一个用于包含存储库/域实体/与neo4j相关的服务。另一个模块与Spring引导和Rest控制器相关

共有1个答案

孟晨朗
2023-03-14

所以我发现了问题所在

Spring boot未检测到neo4j依赖项

<dependency>
    <groupId>org.neo4j</groupId>
    <artifactId>neo4j</artifactId>
    <version>3.1.0</version>
    <scope>runtime</scope>
</dependency>

如果它不是在同一个pom.xml作为Spring引导maven插件。

换句话说,传递依赖不起作用。

 类似资料:
  • 使用1.8。2--尝试(最初)设置2节点HA群集。 以下部分“22.5.4。启动Neo4j嵌入HA模式"的 http://docs.neo4j.org/chunked/stable/ha-setup-tutorial.html 我已将以下内容添加到我的pom中。xml: 并将我的application-content.xml修改如下: 和 /etc/白兔。属性包含: 节点1(地址:192.168.

  • 我正在尝试配置我的应用程序上下文,以便能够在我的应用程序中使用带有嵌入式图形的Neo4j服务器,但没有多大成功。我同时使用Spring数据(Mongo和Neo4j存储库方法)。这是我的应用程序上下文,未运行: 如果我不使用这种方法,只指定存储目录(注释行),那么一切都可以正常运行。我怀疑这是SDN和neo4j服务器之间的版本问题。这是我的POM: 它的父项作为依赖项Spring(核心、上下文、测试

  • 我正在构建一个将使用neo4j的web应用程序。我将在Java构建一个REST API,它将使用Neo4j嵌入式版本。这个架构有什么问题吗? 用别的方法好吗?Neo4j服务器? 谢谢!

  • 我在我的脚手架上工作,我似乎无法让尼奥嵌入初始化。我使用Neo 2,所以我运行Spring数据3.0.0. m1。我不能让它亮起来。这是我的背景 但我有个例外 我找不到任何地方说有更多的构造函数参数。 这是我的依赖项

  • 我在通过REST向子类型暴露关系时遇到了问题。我有一个抽象类,名为Page: 当我从api获得一个Song实例时,json看起来如下所示: 问题是singer字段似乎是嵌入式的。我不能把一个现有的音乐家和这个歌手领域联系在一起。当我试图将现有音乐家的uri分配到singer字段时,它抱怨说它不能从String转换为Music。如果我提供json而不是uri,那么它将创建一个具有相同字段值的新Mus

  • [neo4j:2.1.3,Windows 7 64位,Java 7] 我希望能够使用neo4j shell连接到java中的嵌入式neo4j数据库。正如这里所建议的那样,添加属性remote\u shell\u enabled=“true”应该可以做到这一点。 我按照建议尝试,但我的shell无法连接到数据库并出现错误 原因:组织。neo4j。内核StoreLockException:无法获取存储