Доступ к файлам в папке ресурсов при запуске приложения на сервере в приложении с весенней загрузкой - PullRequest
0 голосов
/ 21 июня 2020

Я добавил аутентификацию Firebase в проект весенней загрузки. Чтобы использовать ресурсы firebase, мне нужно добавить файл json, в котором есть токен для инициализации базы firebase. Код для инициализации выглядит следующим образом.

try {


            InputStream serviceAccount =
                    PplusserverApplication.class.getResourceAsStream("/xxxxxx.json");
            FirebaseOptions options = new FirebaseOptions.Builder()
                    .setCredentials(GoogleCredentials.fromStream(serviceAccount))
                    .setDatabaseUrl("https://xxxxxxxxxxxxxxxxx")
                    .build();


            FirebaseApp.initializeApp(options);
            FirebaseApp.getInstance().getName();
            logger.info("Is Firebase Started :"+FirebaseApp.getInstance().getName());

        } catch (Exception e) {
            e.printStackTrace();
            logger.error("stack: "+e.toString());
        }

Он отлично работает на портативном компьютере и локально на Tomcat. Проблема возникает, когда разворачиваю на сервер. Когда я делаю к нему запрос, я получаю сообщение об ошибке «FirebaseApp с именем [DEFAULT] не существует».

Что я пробовал:

  1. Я переместил json файл в папку stati c.

2) Я добавил @ EnableWeb Mvc, чтобы добавить папку ресурсов и получить к ней доступ.

Я запустил mvn generate resources при сборке проекта.

Выполнение всего этого по-прежнему вызывало ту же ошибку «FirebaseApp с именем [DEFAULT] не существует».

Я развертываю файл войны на tomcat8 на aws ec2

Как мне добавить файл json в войну и получить к нему доступ? Или как бы вы решили эту проблему. Заранее спасибо

1 Ответ

0 голосов
/ 21 июня 2020

Это поможет вам читать из папки в приложении весенней загрузки:

  Resource resource = new ClassPathResource("classpath:XXXX.json");
  InputStream inputStream = resource.getInputStream();

Также для ресурсов при автоподключении @Autowired ResourceLoader resourceLoader

Resource resource = 
resourceLoader.getResource("classpath:XXXX.json");
InputStream inputStream = resource.getInputStream();
...