2016-10-14 4 views
0

Привет я реализовал простую процедуру загрузки файлов с помощью пружины загрузки ConfigurationProperties аннотацию, так что я могу загрузить каталог из моего файла конфигурации YAML:Использование Spring @ConfigurationProperties дает NullPointer при выполнении тестов, JHipster приложение

Service:

@Service 
public class FileSystemStorageService implements StorageService { 

private final Logger log = LoggerFactory.getLogger(FileSystemStorageService.class); 

private final Path pictureLocation; 

@Autowired 
public FileSystemStorageService(StorageProperties storageProperties) { 
    pictureLocation = Paths.get(storageProperties.getUpload()); 
} 

И StorageProperties:

@Component 
@ConfigurationProperties("nutrilife.meals") 
public class StorageProperties { 

    private String upload; 

    public String getUpload() { 
     return upload; 
    } 

    public void setUpload(String upload) { 
     this.upload= upload; 
    } 
} 

В файле YAML у меня есть:

nutrilife: 
    meals: 
     upload: /$full_path_to_my_upload_dir 

Это отлично работает в обычном пружинных загрузках среды выполнения, но проблема начинается, когда я пытаюсь запустить свои интеграционные тесты, он выдает ошибку:

java.lang.IllegalStateException: Failed to load ApplicationContext 
... 
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'fileSystemStorageService' defined in file [/home/mmaia/git/nutrilife/build/classes/main/com/getnutrilife/service/upload/FileSystemStorageService.class]: Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.getnutrilife.service.upload.FileSystemStorageService]: Constructor threw exception; nested exception is java.lang.NullPointerException 
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:279) 

... 
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.getnutrilife.service.upload.FileSystemStorageService]: Constructor threw exception; nested exception is java.lang.NullPointerException 
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:154) 

Так в основном во время тестов конфигурация YAML файл выглядит, как это не подбирается должным образом. Я новичок в Spring, и я застрял в этом вопросе пару часов, не знаю, как это исправить. Есть идеи?

Спасибо.

ответ

1

попытка добавление @value аннотации:

@Value("upload") 
private String upload; 

выше ответ действительна для application.properties конфигурации. он также работает с ямлом.

Вы можете найти ваш правильно правильно YAML конфигурации здесь: 24.6 Using YAML instead of Properties

+0

следующий работал: @value («загрузить»), так что полный осущ, как это работает и с тестами: @Component @ConfigurationProperties ("nutrilife .meals ") StorageProperties общественного класса { /** * расположение папки для хранения файлов */ @value (" загрузить ") частной загрузки строк; ... Пожалуйста, исправьте свой ответ как @Value («upload») поверх свойства, чтобы я мог отметить его как правильно. Спасибо. –

+0

Маркос Майя, привет спасибо. Сделанный –

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

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