Время соединения Neo4J истекло в Spring Boot 2.2.4, но не в 2.0.5 - PullRequest
2 голосов
/ 18 февраля 2020

Я создаю приложение Spring Boot с neo4j. У меня проблема с подключением к развернутой базе данных, когда я работаю на Spring Boot 2.2.4. В другом проекте с Spring Boot 2.0.5 это работает, но когда я обновляю этот проект до 2.2.4, он также ломается с тем же исключением.

Странно то, что он также работает на 2.2.4 локально при использовании локального Docker образа.

я получаю следующее исключение при попытке подключиться к развернутому экземпляру neo4j в облаке, используя uri вида bolt: //35.xx. xx.xx: 7687 И в Spring Boot 2.2.4: enter image description here

Если я запускаю свой образ docker и я изменяю URI соединения на болт : // localhost: 7687 он также отлично работает в Spring Boot 2.2.4.

Даже в моем конвейере CI / CD gitlab тест работает нормально, используя службу внутри конвейера, также с тем же neo4j image.

Это мой build.gradle : enter image description here

И это эффективно установленные версии: enter image description here

Я также всегда могу использовать браузер для подключения к моей базе данных, поэтому я предполагаю, что она имеет что-то o с версиями вместо моей облачной конфигурации.

Кто-нибудь знает, что мне нужно изменить в моей конфигурации?

Заранее спасибо!


Мы запускаем следующие версии:

  • neo4j 3.5.14
  • Пружинный ботинок 2.2.4
  • Java 11

EDIT 1 Как кто-то предложил, я также настроил очень простое c пример приложения (https://neo4j.com/developer/java/), используя только драйвер neo4j v4 с моим экземпляром GCP Neo4J. Это прекрасно работает.


РЕДАКТИРОВАТЬ 2 Мои application.properties выглядят так:

spring.data.neo4j.uri=bolt://35.xxx.xxx.xxx:7687 # <- in prod
spring.data.neo4j.uri=bolt://localhost:7687 # <- in dev
spring.data.neo4j.uri=bolt://neo4j:7687 # <- in CI/CD
spring.data.neo4j.username=neo4j
spring.data.neo4j.password=****
spring.data.neo4j.embedded.enabled=false

Различные среды разделены на отдельные файлы свойств, которые устанавливают Весенний активный профиль. Я всегда проверяю это с заменой localhost в application-dev.properties на publi c ip.

1 Ответ

0 голосов
/ 27 февраля 2020

Моей окончательной настройкой (и решением) было использование только следующих зависимостей:

implementation 'org.springframework.boot:spring-boot-starter-data-neo4j'
implementation 'org.neo4j.driver:neo4j-java-driver-spring-boot-starter:4.0.0.1'

И использование следующих параметров в файле свойств:

org.neo4j.driver.uri=bolt://35.xx.xx.xx:7687
org.neo4j.driver.authentication.username=neo4j
org.neo4j.driver.authentication.password=neo4j
org.neo4j.driver.config.encrypted=false

Шифрование не было проблемой , но настройки должны были быть установлены на org.neo4j.driver вместо зависимости org.springramework.boot. Зависимость springframework все еще необходима для использования @Query et c в репозиториях, поэтому мне потребовалось и то и другое.

...