2

我正在尝试为一个 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:无法自动装配字段:私有 java.lang.String com.kadjoukor.service.MailerServiceImpl.websiteContext;嵌套异常是 java.lang.IllegalArgumentException:无法解析字符串值“${application.url}”中的占位符“application.url”

请注意,我已尝试将 a 添加spring.profiles.active init-param到我的 web.xml 中。它没有任何区别...

我不确定我做错了什么。任何人都可以提供建议吗?

编辑 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
4

1 回答 1

1

基于https://cloudfoundry.atlassian.net/browse/CF-132错误,为了让云配置文件正常工作,您需要一个 ContextLoaderInitializer。因此,我建议您创建一个上下文文件,如果必须,甚至将其留空,以使云配置文件正常工作。

于 2013-01-09T19:46:57.263 回答