2016-01-13 2 views
0

Эй, ребята, у меня проблема. Я использую Spring и у меня есть класс с впрыскивается булево@ Невозможно разрешить использование <context: property-placeholder location = "classpath: mojo.properties" />

@Value("${mojo.ignoreAlertsVisibleFlag}") 
    protected boolean ignoreVisibleFlag; 

Я проверил, что действительно что собственность живет в моих свойствах файла:

mojo.ignoreAlertsVisibleFlag=true 

и я проверил, что у меня есть это в мой контекст Применение XML:

<context:property-placeholder location="classpath:mojo.properties" /> 

Однако я все еще получаю следующую трассировку стека:

Caused by: org.springframework.beans.TypeMismatchException: Failed to convert value of type 'java.lang.String' to required type 'boolean'; nested exception is java.lang.IllegalArgumentException: Invalid boolean value [${mojo.ignoreAlertsVisibleFlag}] 
    at org.springframework.beans.TypeConverterSupport.doConvert(TypeConverterSupport.java:77) 

Любые идеи?

+0

Я использую Spring 4.1.7.RELEASE –

+0

пытался вставить свойство в 'String', а затем преобразовать его в' boolean' впоследствии? это немного грязное обходное решение, но я думаю, что он может сделать трюк. – saljuama

+0

Можете ли вы попробовать с булевым, а не с булевым примитивным, т.е. 'protected Boolean ignoreVisibleFlag;' –

ответ

1

Из прошлого опыта с использованием примитива не удалось обработать кастинг из строки (как прочитано) до логического.

Что вам нужно сделать, это использовать Object вместо примитива, который позволит преобразовать процесс из String в boolean.

@Value("${mojo.ignoreAlertsVisibleFlag}") 
protected Boolean ignoreVisibleFlag; 
+0

Это не проблема, как вы можете видеть из трассировки стека ... '' $ {..} 'не решен, и это связано с отсутствием некоторого рода' PlaceholderConfigurer'. –

+0

@ M.Deinum yep пропустил этот бит, как сценарий kiddie. Хороший собеседник – Aeseir

0

Исправление M. Deinum выполнено. Мне нужно было добавить в сервлет моего диспетчера.

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