USER
{"datetime":"2025-07-30T00:15:43+0300","level":"WARN","logger":"org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext","message":"Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'priceListController' defined in file [C:\\Users\\iustu\\MosGos\\Projects\\prices\\target\\classes\\ru\\ursip\\webservice\\prices\\controller\\PriceListController.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'priceListFacade' defined in file [C:\\Users\\iustu\\MosGos\\Projects\\prices\\target\\classes\\ru\\ursip\\webservice\\prices\\service\\PriceListFacade.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'priceListService' defined in file [C:\\Users\\iustu\\MosGos\\Projects\\prices\\target\\classes\\ru\\ursip\\webservice\\prices\\service\\PriceListService.class]: Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'pricePositionService' defined in file [C:\\Users\\iustu\\MosGos\\Projects\\prices\\target\\classes\\ru\\ursip\\webservice\\prices\\service\\PricePositionService.class]: Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'pricePositionEsRepository' defined in ru.ursip.webservice.prices.repository.PricePositionEsRepository defined in @EnableElasticsearchRepositories declared on ElasticsearchConfig: Invocation of init method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository]: Constructor threw exception; nested exception is org.springframework.data.elasticsearch.ElasticsearchException: Error while for indexExists request: org.elasticsearch.action.admin.indices.get.GetIndexRequest@6a38a87c","thread":"main"}
{"datetime":"2025-07-30T00:15:43+0300","level":"INFO","logger":"org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean","message":"Closing JPA EntityManagerFactory for persistence unit 'default'","thread":"main"}
{"datetime":"2025-07-30T00:15:43+0300","level":"INFO","logger":"org.ehcache.core.EhcacheManager","message":"Cache 'nsi_values' removed from EhcacheManager.","thread":"main"}
{"datetime":"2025-07-30T00:15:44+0300","level":"INFO","logger":"org.ehcache.core.EhcacheManager","message":"Cache 'nsi_elements' removed from EhcacheManager.","thread":"main"}
{"datetime":"2025-07-30T00:15:44+0300","level":"INFO","logger":"org.ehcache.core.EhcacheManager","message":"Cache 'nsi_dict' removed from EhcacheManager.","thread":"main"}
{"datetime":"2025-07-30T00:15:44+0300","level":"INFO","logger":"org.ehcache.core.EhcacheManager","message":"Cache 'nsi_elements_list' removed from EhcacheManager.","thread":"main"}
{"datetime":"2025-07-30T00:15:44+0300","level":"INFO","logger":"org.ehcache.core.EhcacheManager","message":"Cache 'nsi_values_list' removed from EhcacheManager.","thread":"main"}
{"datetime":"2025-07-30T00:15:44+0300","level":"INFO","logger":"com.zaxxer.hikari.HikariDataSource","message":"HikariPool-1 - Shutdown initiated...","thread":"main"}
{"datetime":"2025-07-30T00:15:44+0300","level":"INFO","logger":"com.zaxxer.hikari.HikariDataSource","message":"HikariPool-1 - Shutdown completed.","thread":"main"}
{"datetime":"2025-07-30T00:15:44+0300","level":"INFO","logger":"org.apache.catalina.core.StandardService","message":"Stopping service [Tomcat]","thread":"main"}
{"datetime":"2025-07-30T00:15:44+0300","level":"INFO","logger":"org.springframework.boot.autoconfigure.logging.ConditionEvaluationReportLoggingListener","message":"\r\n\r\nError starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.","thread":"main"}
{"datetime":"2025-07-30T00:15:44+0300","level":"ERROR","logger":"org.springframework.boot.SpringApplication","message":"Application run failed","thread":"main","context":"o.s.b.f.UnsatisfiedDependencyException: Error creating bean with name 'priceListController' defined in file [C:\\Users\\iustu\\MosGos\\Projects\\prices\\target\\classes\\ru\\ursip\\webservice\\prices\\controller\\PriceListController.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'priceListFacade' defined in file [C:\\Users\\iustu\\MosGos\\Projects\\prices\\target\\classes\\ru\\ursip\\webservice\\prices\\service\\PriceListFacade.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'priceListService' defined in file [C:\\Users\\iustu\\MosGos\\Projects\\prices\\target\\classes\\ru\\ursip\\webservice\\prices\\service\\PriceListService.class]: Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'pricePositionService' defined in file [C:\\Users\\iustu\\MosGos\\Projects\\prices\\target\\classes\\ru\\ursip\\webservice\\prices\\service\\PricePositionService.class]: Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'pricePositionEsRepository' defined in ru.ursip.webservice.prices.repository.PricePositionEsRepository defined in @EnableElasticsearchRepositories declared on ElasticsearchConfig: Invocation of init method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository]: Constructor threw exception; nested exception is org.springframework.data.elasticsearch.ElasticsearchException: Error while for indexExists request: org.elasticsearch.action.admin.indices.get.GetIndexRequest@6a38a87c\r\n\tat o.s.b.f.s.Constructo...\r\n"}
Disconnected from the target VM, address: '127.0.0.1:57813', transport: 'socket'ASSISTANT
Ошибка в логе:
```
org.springframework.data.elasticsearch.ElasticsearchException: Error while for indexExists request: org.elasticsearch.action.admin.indices.get.GetIndexRequest@6a38a87c
```
и связанная с инициализацией репозитория `pricePositionEsRepository` при использовании `@EnableElasticsearchRepositories`.
---
## Причина
Во время инициализации Spring Data Elasticsearch пытается проверить существует ли индекс, связанный с `PricePositionEsRepository`, вызовом `indexExists`. На этом этапе происходит ошибка. Это может быть вызвано:
1. **Неправильным URL подключения к Elasticsearch/OpenSearch**
Клиент не может связаться с кластером, либо адрес указан неверно.
2. **Версия клиента Elasticsearch и сервера OpenSearch/Elasticsearch** несовместимы:
Например, вы используете клиент 6.x с сервером OpenSearch 1.3.12, это может привести к ошибкам в API.
3. **Проблемы с сетью или доступом к Elasticsearch/OpenSearch**
Кластер недоступен, заблокирован фаерволом, нет прав.
4. **Индекс, который ожидает репозиторий, не доступен или не может быть определён из-за ошибки конфигурации**.
---
## Что проверить и делать
### 1. Проверьте URL подключения
В вашей конфигурации (например, `env.es.rest.url`) должно быть корректное значение и OpenSearch/Elasticsearch должен быть доступен по этому адресу (например, http://localhost:9200).
Проверьте доступ с машины запуска приложения, например, через curl:
```bash
curl http://localhost:9200
```
Если не доступно, исправьте адрес или параметры сети.
### 2. Проверьте версии клиента и сервера
- Клиент `elasticsearch-rest-high-level-client` должен быть версии 7.10.x, если сервер — OpenSearch 1.x (который основан на Elasticsearch 7.10.2).
- Использование клиента версии 6.x с OpenSearch 1.x часто приводит к таким ошибкам.
- Рассмотрите использование **OpenSearch Java Client** вместо официального ES клиента, если вы используете OpenSearch.
### 3. Проверьте конфигурацию и настройки индекса
- Убедитесь, что в свойствах задан точный индекс, с которым работает репозиторий.
- Если индекс должен создаваться автоматически (auto-create), убедитесь, что соответствующие права и настройки это позволяют.
### 4. Логи и стек трейс
- При включении `debug` логирования Spring Data Elasticsearch получите более подробные логи, которые помогут понять на каком этапе и почему падает `indexExists` запрос.
---
## Варианты решения
- Обновите зависимости клиента Elasticsearch до **7.10.2** (или версии, совместимой с OpenSearch 1.3.x).
- Проверьте и поправьте URL подключения к серверу.
- Чтобы быстрее проверить, можно временно отключить компонент репозитория ElasticSearch и запустить приложение — убедиться, что остальной контекст загружается.
- Перейдите на OpenSearch Java Client, если используете OpenSearch, либо используйте совместимую версию Spring Data Elasticsearch.
---
## Кратко
> **Ошибка при инициализации Elasticsearch репозитория связана с проблемой подключения или несоответствием клиента и сервера, из-за чего запрос проверки существования индекса (`indexExists`) падает.**
---
Если нужна помощь с конфигурацией, версиями зависимостей или пример настройки — пишите, помогу!