我正在尝试为一个Spring配置文件激活一组属性文件,为另一个Spring配置文件激活另一个属性文件,如下所示:
<beans profile="cloud">
<context:property-placeholder location="classpath*:META-INF/spring/cloud/*.properties" />
</beans>
<beans profile="default">
<context:property-placeholder location="classpath*:META-INF/spring/default/*.properties" />
</beans>
我的src/main/resources
文件夹中有相应且适当的目录结构。
我的一项服务中有一个简单的@Value("${application.url}")
,我系统地收到以下错误:
创建名为'mailerServiceImpl'的bean时出错:注入 自动连接依赖失败;嵌套异常是 org.springframework.beans.factory.Be anCreationException:不能 autowire字段:private java.lang.String com.kadjoukor.service.MailerServiceImpl.websiteContext;嵌套 异常是java.lang.IllegalArgumentException:无法解决 占位符'application.url'在字符串值“$ {application.url}”
中
请注意,我已尝试在我的web.xml中添加spring.profiles.active
init-param
。它没有任何区别......
我不确定自己错了什么。有人可以提供建议吗?
编辑1 :以上配置片段位于配置文件的底部是否重要?
编辑2 :以下是我web.xml
的输出:
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.0" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" metadata-complete="true">
<display-name>kadjoukor</display-name>
<description>Roo generated kadjoukor application</description>
<!-- Enable escaping of form submission contents -->
<context-param>
<param-name>defaultHtmlEscape</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:META-INF/spring/applicationContext*.xml classpath:META-INF/cloud/cloudfoundry-auto-reconfiguration-context.xml</param-value></context-param>
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter>
<filter-name>HttpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter>
<filter-name>Spring OpenEntityManagerInViewFilter</filter-name>
<filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>HttpMethodFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Spring OpenEntityManagerInViewFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Creates the Spring Container shared by all Servlets and Filters -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
<listener>
<listener-class>
org.springframework.security.web.session.HttpSessionEventPublisher
</listener-class>
</listener>
<!-- Handles Spring requests -->
<servlet>
<servlet-name>kadjoukor</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>WEB-INF/spring/webmvc-config.xml classpath:META-INF/cloud/cloudfoundry-auto-reconfiguration-context.xml</param-value></init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>kadjoukor</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>30</session-timeout><!-- TODO -->
</session-config>
<context-param><param-name>contextInitializerClasses</param-name><param-value>org.cloudfoundry.reconfiguration.spring.CloudApplicationContextInitializer</param-value></context-param></web-app>
以下是WEB-INF/libs
目录的内容:
activation-1.1.1.jar 67.8K
antlr-2.7.6.jar 433.0K
aopalliance-1.0.jar 4.4K
asm-3.3.1.jar 42.6K
aspectjrt-1.7.0.RC1.jar 113.5K
aspectjweaver-1.7.0.RC1.jar 1.7M
auto-reconfiguration-0.6.5.jar 693.3K
cglib-2.2.2.jar 280.5K
cglib-nodep-2.2.2.jar 319.3K
commons-beanutils-1.8.3.jar 226.6K
commons-codec-1.5.jar 71.4K
commons-collections-3.2.1.jar 561.9K
commons-dbcp-1.3.jar 145.3K
commons-digester-2.1.jar 192.2K
commons-fileupload-1.2.2.jar 58.2K
commons-io-2.1.jar 159.3K
commons-lang3-3.1.jar 308.4K
commons-logging-1.0.4.jar 37.1K
commons-pool-1.5.6.jar 98.1K
dom4j-1.6.1.jar 306.5K
ehcache-core-2.6.0.jar 1.3M
flexjson-2.1.jar 79.2K
guava-11.0.2.jar 1.6M
hamcrest-core-1.1.jar 74.8K
hibernate-commons-annotations-3.2.0.Final.jar 69.6K
hibernate-core-3.6.9.Final.jar 3.0M
hibernate-entitymanager-3.6.9.Final.jar 416.3K
hibernate-jpa-2.0-api-1.0.1.Final.jar 100.3K
hibernate-validator-4.2.0.Final.jar 358.0K
httpclient-4.1.2.jar 344.0K
httpcore-4.1.2.jar 177.0K
imgscalr-lib-4.2.jar 27.2K
jackson-core-asl-1.9.9.jar 226.7K
jackson-mapper-asl-1.9.9.jar 762.0K
java-xmlbuilder-0.4.jar 18.1K
javassist-3.12.0.GA.jar 618.5K
javassist-3.16.1-GA.jar 643.9K
javax.inject-1.jar 2.4K
jcl-over-slf4j-1.6.4.jar 16.9K
jets3t-0.9.0.jar 527.1K
jmimemagic-0.1.2.jar 44.5K
joda-time-2.1.jar 557.1K
jsr305-1.3.9.jar 32.2K
jstl-api-1.2.jar 29.8K
jstl-impl-1.2.jar 382.8K
jta-1.1.jar 14.7K
junit-dep-4.8.2.jar 213.2K
log4j-1.2.16.jar 470.2K
mail-1.4.3.jar 451.3K
mysema-commons-lang-0.2.4.jar 11.8K
mysql-connector-java-5.1.18.jar 771.4K
ognl-3.0.5.jar 222.5K
oro-2.0.8.jar 63.7K
prettytime-1.0.8.Final.jar 65.4K
querydsl-core-2.9.0.jar 367.3K
querydsl-jpa-2.9.0.jar 93.3K
slf4j-api-1.6.4.jar 25.4K
slf4j-log4j12-1.6.4.jar 9.5K
spring-aop-3.2.0.RELEASE.jar 327.0K
spring-aspects-3.2.0.RELEASE.jar 68.2K
spring-beans-3.2.0.RELEASE.jar 590.6K
spring-context-3.2.0.RELEASE.jar 834.0K
spring-context-support-3.2.0.RELEASE.jar 124.1K
spring-core-3.2.0.RELEASE.jar 842.8K
spring-data-commons-core-1.3.0.RELEASE.jar 215.0K
spring-data-jpa-1.1.0.RELEASE.jar 129.8K
spring-expression-3.2.0.RELEASE.jar 189.2K
spring-jdbc-3.2.0.RELEASE.jar 391.6K
spring-js-resources-2.2.1.RELEASE.jar 4.3M
spring-orm-3.2.0.RELEASE.jar 383.0K
spring-security-acl-3.1.2.RELEASE.jar 77.7K
spring-security-config-3.1.2.RELEASE.jar 198.9K
spring-security-core-3.1.2.RELEASE.jar 332.1K
spring-security-taglibs-3.1.2.RELEASE.jar 20.3K
spring-security-web-3.1.2.RELEASE.jar 245.2K
spring-social-core-1.0.2.RELEASE.jar 113.7K
spring-social-facebook-1.0.2.RELEASE.jar 117.2K
spring-social-web-1.0.2.RELEASE.jar 18.0K
spring-tx-3.2.0.RELEASE.jar 235.3K
spring-web-3.2.0.RELEASE.jar 609.7K
spring-webmvc-3.2.0.RELEASE.jar 621.0K
thymeleaf-2.0.14.jar 677.9K
thymeleaf-extras-tiles2-1.0.0-beta3-SNAPSHOT.jar 46.7K
thymeleaf-spring3-2.0.14.jar 161.9K
tiles-api-2.2.2.jar 35.1K
tiles-core-2.2.2.jar 157.2K
tiles-jsp-2.2.2.jar 49.6K
tiles-servlet-2.2.2.jar 58.3K
tiles-template-2.2.2.jar 23.9K
validation-api-1.0.0.GA.jar 46.3K
xercesImpl-2.7.1.jar 1.1M
xml-apis-1.0.b2.jar 106.8K
xmlParserAPIs-2.0.2.jar 76.6K
答案 0 :(得分:1)
基于https://cloudfoundry.atlassian.net/browse/CF-132错误,为了让云配置文件正常工作,您需要一个ContextLoaderInitializer。因此,我建议您创建一个上下文文件,如果必须,请将其留空,以使云配置文件正常工作。