[英]Cannot implement CRUD operations through Neo4j in Spring Boot
[英]How can I calculate Shortest Path through Neo4j in my Spring Boot through localhost and Docker?
我在 Spring Boot 示例中计算通过 Neo4j 的最短路径时遇到问题。
在添加了一些城市及其路线后,我想根据它们的连接和持续时间计算它们的最短路径。 但是,在 ShortestPathController 中定义的这两个方法不能工作。
以下是显示的问题。
已编辑
1 )我无法在AppApplicationTests.java中运行所有测试方法
org.neo4j.driver.exceptions.AuthenticationException: The client is unauthorized due to authentication failure.
2)我不知道,因为我无法运行所有测试方法,如果有很多城市及其路线像这个资源( 链接)
我该如何解决?
这是我的 GitHub 存储库:项目链接
这是我的 docker-compose.yml 文件
version: '3'
services:
neo4j-db:
image: neo4j:4.3
container_name: app-neo4j-db
ports:
- 7474:7474
- 7687:7687
volumes:
- $HOME/neo4j/data:/data
- $HOME/neo4j/logs:/logs
- $HOME/neo4j/import:/import
- $HOME/neo4j/plugins:/plugins
environment:
NEO4J_AUTH: "neo4j/123456"
NEO4JLABS_PLUGINS: '["apoc"]'
NEO4J_dbms_security_procedures_unrestricted: apoc.\\\*,gds.\\\*
dbms_connector_bolt_listen__address: neo4j-db:7687
dbms_connector_bolt_advertised__address: neo4j-db:7687
healthcheck:
test: cypher-shell --username neo4j --password 123456 'MATCH (n) RETURN COUNT(n);' # Checks if neo4j server is up and running
interval: 10s
timeout: 10s
retries: 5
app:
image: 'springbootneo4jshortestpath:latest'
build:
context: .
dockerfile: Dockerfile
container_name: SpringBootNeo4jShortestPath
depends_on:
neo4j-db:
condition: service_healthy # Wait for neo4j to be ready
links:
- neo4j-db
environment:
NEO4J_URI: bolt://neo4j-db:7687
NEO4J_USER: neo4j
NEO4J_PASSWORD: 123456
volumes:
app-neo4j-db:
第 1 部分:这只是一个警告。 在大多数情况下,您不会对未绑定的关系感到满意,因为路径的数量会迅速增长,并且服务器必须在您获得它之前将所有可能的组合保存在内存中。
第 2 部分:@jose_bacoy 所说的。 链接后面是有关如何在桌面、服务器或 Docker 部署中添加 APOC 的信息。 在 shell/浏览器中测试您的查询(甚至是它的简化版本),以确保它被正确激活。
第 2 部分(同样是不同的主题):您不能在存储库中返回PathValue
。 如果要使用Java驱动的类型,请使用SDN的Neo4jClient
进行交互。 SDN 文档 / Neo4jClient
(编辑并添加) Docker compose:我无法使用其他语法提供数组,所以基本上这将在容器启动时自动加载插件。 您可以通过 shell 或浏览器中的CALL dbms.procedures()
检查 APOC 库是否可用。 这是你首先应该做的。
environment:
- NEO4J_AUTH=neo4j/secret
- NEO4JLABS_PLUGINS=["apoc"]
您需要确保在 Neo4j 服务器中安装了 APOC 库。 请遵循此安装程序。
https://neo4j.com/labs/apoc/4.0/installation/#neo4j-server
然后更新您的 conf 文件以将该功能列入白名单。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.