【问题标题】:Issue with Spring profiles and my properties filesSpring 配置文件和我的属性文件的问题
【发布时间】:2012-12-05 01:14:00
【问题描述】:

我正在尝试为一个 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”

请注意,我已尝试将 spring.profiles.active init-param 添加到我的 web.xml 中。没什么区别……

我不确定我做错了什么。谁能给点建议?

编辑1:上述配置的sn-ps是否位于配置文件的底部

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

【问题讨论】:

  • 您能否确认,当您将propery-placeholder 东西移出 时,它确实有效(即位置良好且占位符机制有效)
  • 是的,我确实确认了上述内容。
  • 好的。你有什么样的应用程序,它是独立的还是 web 应用程序?被激活的云配置文件在大多数情况下都有效,但不是全部(参见例如cloudfoundry.atlassian.net/browse/CF-132)。能否请您使用“vmc files xxx”查看您的 web.xml 和 WEB-INF/lib 的内容,看看前者已被修改,而后者与您构建的相比包含一个额外的 jar。
  • @ebottard:谢谢。我可以看到任何额外的 jar... 我已经包含了命令的结果以及 web.xml 的内容。
  • @ebottard:你能告诉我你指的是什么额外的罐子吗?如何添加?

标签: spring cloud-foundry properties-file


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-26
    • 2015-03-22
    • 1970-01-01
    • 2020-01-23
    • 2017-08-18
    • 1970-01-01
    • 2013-02-22
    • 2016-07-12
    相关资源
    最近更新 更多