Кафка не понимает ресурсы Spring только файлы в файловой системе.
Нельзя использовать classpath:
для ссылки на хранилище ключей из банки, поскольку Spring Boot должен преобразовать ресурс в абсолютный путь для передачи его в Kafka.
private String resourceToPath(Resource resource) {
try {
return resource.getFile().getAbsolutePath();
}
catch (IOException ex) {
throw new IllegalStateException("Resource '" + resource + "' must be on a file system", ex);
}
Одним из решений является копирование хранилища ключей из ресурса jar в файл в файловой системе. Сделайте это перед загрузкой SpringApplication
.
, например, используйте FileCopyUtils
.