Разверните JAR Spring Boot на сервере GemFire - PullRequest
0 голосов
/ 05 сентября 2018

Я реализовал обработчик событий на стороне сервера GemFire ​​(CacheLoader), используя Spring Boot, так как мне придется вызывать несколько внешних служб для загрузки данных.

Когда я пытался развернуть JAR (Spring Boot FAT JAR) в GemFire, я получаю сообщение об ошибке ниже:

gfsh>deploy --jar=C:\GIT\client-cache\build\libs\client-cache.jar
Response was null for: "deploy --jar=C:\GIT\client-cache\build\libs\client- 
cache.jar". (gfsh.isConnected=true)

Could not read command response.  Error occurred while executing "deploy -- 
jar=C:\GIT\client-cache\build\libs\client-cache.jar" on manager. Please check 
manager logs for error.

Может кто-нибудь помочь с этой проблемой?

1 Ответ

0 голосов
/ 13 сентября 2018

В двух словах, команда Gfsh deploy не может обрабатывать развертывания FAR JAR, загруженные в кластер GemFire. Даже если бы это было возможно, не было бы ничего, чтобы загрузить Spring ApplicationContext для создания, настройки и инициализации вашего GemFire ​​CacheLoader (я подозреваю, что bean-компонент Spring позволяет вводить данные с несколькими управляемыми (другими бинами в контексте Spring) источники (услуги) ??), а затем зарегистрируйте CacheLoader в Регионе.

Здесь действительно только несколько вариантов:

  1. Используйте Spring [Boot] для настройки и начальной загрузки Pivotal GemFire. Я написал целый раздел по этому вопросу в Spring Boot для Pivotal GemFire ​​(и Apache Geode) Справочное руководство Приложение , здесь .

  2. Используйте опцию Gfsh --spring-xml-location для команды start server для настройки и начальной загрузки Pivotal GemFire ​​с Spring (по умолчанию XML, но вы можете использовать небольшой фрагмент XML для включения конфигурации аннотаций и использовать Spring @Configuration классы в вашей FAT JAR с этого момента).

  3. Третий способ справиться с этим - использовать SDG SpringContextBootstrappingInitializer. Более подробную информацию можно найти здесь .

В любом случае, вам нужно убедиться, что контейнер Spring каким-либо образом прямо или косвенно загружен GemFire.

Это должно помочь вам начать с нескольких идей.

...