powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / PropertyPlaceholderConfigurer
21 сообщений из 21, страница 1 из 1
PropertyPlaceholderConfigurer
    #38196517
alexander00513
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
org.springframework.beans.factory.config.PropertyPlaceholderConfigurer - подскажите как достать проперти по имени методом... В appContext я получаю этот бин, и мне нужно заинжектить элементы конфига в класс, с помощью spring EL. Использую анотированый метод. В контексте так же используется ещё один конфиг, для БД, он прекрасно читается и элементы конфига видны в контексте с помощью ${}.
...
Рейтинг: 0 / 0
PropertyPlaceholderConfigurer
    #38196521
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexander00513, @Value("${setting.text}") нет?
...
Рейтинг: 0 / 0
PropertyPlaceholderConfigurer
    #38196530
alexander00513
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет (

curriculum-converter-web.properties
Код: sql
1.
2.
3.
4.
app.scheme=http
app.host=localhost
app.port=8080
app.defaultPath=/cc-web/



applicationContext.xml
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
...
<import resource="data-hibernate.xml" />
	<import resource="dispatcher-servlet.xml" />
	<import resource="security-context.xml" />
	
	<bean id="ccWebProperty"
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location" value="/WEB-INF/curriculum-converter-web.properties" />
    </bean>
...



AppUtil
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
@Component
public class AppUtil {
    
    @Value("${app.scheme}")
    private String scheme;

    @Value("${app.host}")
    private String host;

    @Value("${app.port}")
    private Integer port;

    @Value("${app.defaultPath}")
    private String defaultPath;

    ...setters and getters



error
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'appUtil': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private java.lang.String ua.org.curriculum.converter.utils.AppUtil.scheme; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'app.scheme' in string value "${app.scheme}"
	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:288)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1120)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
	at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:389)
	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:294)
	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4681)
	at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5184)
	at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5179)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
	at java.lang.Thread.run(Thread.java:662)
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private java.lang.String ua.org.curriculum.converter.utils.AppUtil.scheme; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'app.scheme' in string value "${app.scheme}"
	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:514)
	at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)
	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:285)
	... 21 more
Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'app.scheme' in string value "${app.scheme}"
	at org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:173)
	at org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders(PropertyPlaceholderHelper.java:125)
	at org.springframework.beans.factory.config.PropertyPlaceholderConfigurer$PlaceholderResolvingStringValueResolver.resolveStringValue(PropertyPlaceholderConfigurer.java:255)
	at org.springframework.beans.factory.support.AbstractBeanFactory.resolveEmbeddedValue(AbstractBeanFactory.java:752)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:759)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:749)
	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:486)
	... 23 more
Mar 24, 2013 3:39:14 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error listenerStart
...
Рейтинг: 0 / 0
PropertyPlaceholderConfigurer
    #38196538
alexander00513
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я не совсем понимаю, каким образом в контейнере доступны эти свойства просто по ${}... Возможно они доступны только из одного проперти... у меня в data-hibernate.xml объявляется

Код: sql
1.
2.
3.
4.
<bean id="propertyConfigurer"
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location" value="classpath:curriculum-converter-dev.properties" />
    </bean>



И data-hibernate.xml импортится в appContext, может они конфликтуют каким то образом ? Хотя с другой стороны id у них разные.... В общем для меня пока загадка - растолкуйте плз как это работает..
...
Рейтинг: 0 / 0
PropertyPlaceholderConfigurer
    #38196542
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexander00513, ну а запись вроде этой есть?

Код: xml
1.
<context:property-placeholder location="classpath:curriculum-converter-web.properties"/>
...
Рейтинг: 0 / 0
PropertyPlaceholderConfigurer
    #38196546
alexander00513
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не было, добавил - ничего не изменилось, такой же ексепшен
...
Рейтинг: 0 / 0
PropertyPlaceholderConfigurer
    #38196548
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну тогда дождись знающих людей)
...
Рейтинг: 0 / 0
PropertyPlaceholderConfigurer
    #38196551
alexander00513
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хорошо, буду ждать... Вы не подскажите, почему работает без подобной строки

Код: sql
1.
<context:property-placeholder location="classpath:curriculum-converter-web.properties"/>



Проперти

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<bean id="propertyConfigurer"
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location" value="classpath:curriculum-converter-dev.properties" />
    </bean>
	
    <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="configLocation" value="classpath:hibernate.cfg.xml"/>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">${hibernate.dialect}</prop>
                <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
                <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl}</prop>
            </props>
        </property>
    </bean>
...
Рейтинг: 0 / 0
PropertyPlaceholderConfigurer
    #38196559
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexander00513, как мне кажется у вас проблема с контекстами.
...
Рейтинг: 0 / 0
PropertyPlaceholderConfigurer
    #38196560
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
PropertyPlaceholderConfigurer
    #38196563
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexander00513, могу дать еще один совет от дилетанта)
Добавьте в applicationContext.xml.

Код: xml
1.
2.
3.
4.
<bean id="propertyConfigurer"
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location" value="classpath:curriculum-converter-dev.properties" />
</bean>



Из всех других файлов конфигурации удалите все что касается PropertyPlaceholderConfigurer)
...
Рейтинг: 0 / 0
PropertyPlaceholderConfigurer
    #38196566
alexander00513
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я попробовал поменять местами импорты остальных конфигов и создание бина с проперти. Теперь он невидит другой конфиг для БД ))

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/spring/data-hibernate.xml]: Could not resolve placeholder 'hibernate.hbm2ddl' in string value "${hibernate.hbm2ddl}"
	at org.springframework.beans.factory.config.PlaceholderConfigurerSupport.doProcessProperties(PlaceholderConfigurerSupport.java:209)
	at org.springframework.beans.factory.config.PropertyPlaceholderConfigurer.processProperties(PropertyPlaceholderConfigurer.java:220)
	at org.springframework.beans.factory.config.PropertyResourceConfigurer.postProcessBeanFactory(PropertyResourceConfigurer.java:84)
	at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:694)
	at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:669)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:461)
	at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:389)
	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:294)
	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4681)
	at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5184)
	at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5179)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
	at java.lang.Thread.run(Thread.java:662)
...
Рейтинг: 0 / 0
PropertyPlaceholderConfigurer
    #38196573
alexander00513
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробовал вот так

Код: sql
1.
2.
3.
4.
5.
<bean id="propertyConfigurer"
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location" value="classpath:curriculum-converter-dev.properties" />
        <property name="location" value="/WEB-INF/curriculum-converter-web.properties"></property>
    </bean>



Не работает, ексепшен длинный ))
...
Рейтинг: 0 / 0
PropertyPlaceholderConfigurer
    #38196577
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexander00513Попробовал вот так

Код: sql
1.
2.
3.
4.
5.
<bean id="propertyConfigurer"
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location" value="classpath:curriculum-converter-dev.properties" />
        <property name="location" value="/WEB-INF/curriculum-converter-web.properties"></property>
    </bean>



Не работает, ексепшен длинный ))
Только надо так

Код: xml
1.
2.
3.
4.
<bean id="propertyConfigurer"
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location" value="classpath:curriculum-converter-dev.properties, classpath:curriculum-converter-web.properties " />
    </bean>
...
Рейтинг: 0 / 0
PropertyPlaceholderConfigurer
    #38196632
alexander00513
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<context:property-placeholder location="/WEB-INF/curriculum-converter-web.properties"/>

	<bean id="propertyConfigurer"
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location">
	        <list>
	        	<value>classpath:curriculum-converter-dev.properties</value>
	        	<value>/WEB-INF/curriculum-converter-web.properties</value>
	        </list>
        </property>
    </bean>



И так как описано выше - результат один:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
	at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:155)
	at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:131)
	at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:685)
	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:270)
	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4681)
	at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5184)
	at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5179)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
	at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
	... 13 more
Mar 24, 2013 6:16:35 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error listenerStart
Mar 24, 2013 6:16:35 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/cc-web] startup failed due to previous errors
Mar 24, 2013 6:16:35 PM org.apache.catalina.core.ApplicationContext log
INFO: Closing Spring root WebApplicationContext
Mar 24, 2013 6:16:35 PM org.apache.catalina.core.StandardContext listenerStop
SEVERE: Exception sending context destroyed event to listener instance of class org.springframework.web.context.ContextLoaderListener
java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
	at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:155)
	at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:131)
	at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:685)
	at org.springframework.web.context.ContextCleanupListener.<clinit>(ContextCleanupListener.java:43)
	at org.springframework.web.context.ContextLoaderListener.contextDestroyed(ContextLoaderListener.java:145)
	at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4721)
	at org.apache.catalina.core.StandardContext$4.call(StandardContext.java:5423)
	at org.apache.catalina.core.StandardContext$4.call(StandardContext.java:5402)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
	at java.lang.Thread.run(Thread.java:662)
...
Рейтинг: 0 / 0
PropertyPlaceholderConfigurer
    #38196676
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexander00513
а на exception не пробовал смотреть? как можно ваще программить, в спринги какие-то лезть, если ты не знаешь что такое NoClassDefFoundError
...
Рейтинг: 0 / 0
PropertyPlaceholderConfigurer
    #38196725
alexander00513
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да знаю я что это такое, а "ваще" - программировать можно, тем более на спринге. Я же не высокотехнологичный велосипед изобретаю
...
Рейтинг: 0 / 0
PropertyPlaceholderConfigurer
    #38197216
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexander00513Да знаю я что это такое
ну и?

alexander00513, а "ваще" - программировать можно, тем более на спринге
я знаю. у этого метода даже имя есть - метод имени тыка.
...
Рейтинг: 0 / 0
PropertyPlaceholderConfigurer
    #38197252
alexander00513
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
chpasha ну и?

Она означает, что класс не находится в classpath, но используется.

chpasha я знаю. у этого метода даже имя есть - метод имени тыка.

А куда в программировании без метода тыка ? Да и в принципе... Вы предпочитаете выполнять всё строго по описаным мануалам и ни шага в сторону, я правильно понимаю ?

А вообще ошибка появилась непонятно откуда, после перезагрузки рабочей машины, в консоль была выведена адекватная ошибка, которая сообщила, что вот так делать нельзя, т.к. система не может привести типы и запихнуть эти свойства в ArrayList

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
   <bean id="propertyConfigurer"
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location">
	        <list>
	        	<value>classpath:curriculum-converter-dev.properties</value>
	        	<value>/WEB-INF/curriculum-converter-web.properties</value>
	        </list>
        </property>
    </bean>
...
Рейтинг: 0 / 0
PropertyPlaceholderConfigurer
    #38197279
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexander00513chpasha ну и?

Она означает, что класс не находится в classpath, но используется.
правильно. метод решения тривиальный.


alexander00513Вы предпочитаете выполнять всё строго по описаным мануалам и ни шага в сторону, я правильно понимаю ?
ответ очевиден разве нет? например, если бы то почитал документацию спринга, то узнал бы (как здесь уже указывалось), что существует гораздо более короткая форма записи
Код: xml
1.
<context:property-placeholder location="classpath:/test1.properties, classpath:/test1.properties"/>



у тебя такое в конфиге есть? <context:component-scan base-package="com.myapp.mypackage"/>
также рекомендую почитать обсуждение здесь
...
Рейтинг: 0 / 0
PropertyPlaceholderConfigurer
    #38197290
alexander00513
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
О более короткой записи не знал,

Код: sql
1.
<context:component-scan base-package="com.myapp.mypackage"/>



Это есть. Вечером попробую
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / PropertyPlaceholderConfigurer
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]