2016-10-10 13 views
0

Обзор:Проблема в доступе файл ресурсов Спринг загрузки приложений в Linux

Я использую следующий код для создания хранилища ключей из файла сертификата, который находится в ресурсы/сертификаты/crt.p12:

public static KeyStore getKeyStoreFromFile(String certificateFilePath, 
     String certificatePassword) throws KeyStoreException { 
     File p12File = new File(
      KeyStoreUtil.class.getClassLoader().getResource(certificateFilePath).getFile()); 
     KeyStore.Builder builder = KeyStore.Builder.newInstance("PKCS12", null, p12File, 
      new KeyStore.PasswordProtection(certificatePassword.toCharArray())); 
     return builder.getKeyStore(); 
    } 

и работает на платформе Windows.

Выпуск:

Однако, когда я запускаю его на платформе Linux система не может найти файл и выдает следующее исключение:

java.lang.IllegalArgumentException: File does not exist or it does not refer to a normal file: file:/executable/billpay-billinfo-services.jar!/certificates/crt.p12 

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

+0

Имеет ли пользователь, выполняющий java-программу на linux, привилегию читать и использовать этот файл? – Nadir

ответ

0

Прежде всего, я понял, что положить файл сертификата в пути к классам является плохой практикой, как это возможно, необходимо изменить в будущем. Поэтому я исключил его из класса и поместил его рядом с файлом jar. На этот раз, когда я запустил свой тест, файл сертификата был доступен.

 Смежные вопросы

  • Нет связанных вопросов^_^