簡體   English   中英

Spring應用程序無法在Cloudfoundry中讀取的雲屬性

[英]Cloud properties not read by Spring application in Cloudfoundry

我正在Cloudfoundry中部署一個需要訪問mysql數據庫的Spring應用程序。 現在按照本教程 ,如果春季版本高於3.1,則可以為雲使用配置文件,並且該應用程序可以使用雲屬性。 在我的情況下,mysql服務已注冊為p-mysql,因此我的spring配置看起來像這樣

 <beans profile="cloud">
    <context:property-placeholder location="classpath:/app.conf" />
     <bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer" 
          p:location="file:#{systemProperties['app.conf']}" />
     <bean id="datasource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
    <!-- DB connection properties -->
    <property name="driverClass" value="${db_driver:oracle.jdbc.OracleDriver}" />
    <property name="jdbcUrl" value="${cloud.services.p-mysql.connection.jdbcUrl}" />
    <property name="user" value="${cloud.services.p-mysql.connection.username}" />
    <property name="password" value="${cloud.services.p-mysql.connection.password}" />

</bean>

</beans>

我需要app.conf用於與數據庫服務無關的其他鍵。 當我部署這個我得到錯誤

OUT org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'datasource' defined in URL  [jar:file:/home/vcap/app/.java-buildpack/tomcat/webapps/ROOT/WEB-INF/lib/test-server-1.3.0.BUILD-SNAPSHOT.jar!/spring-bootstrap.xml]: Could not resolve placeholder 'cloud.services.p-mysql.connection.jdbcUrl'  

有什么我想念的東西,當我為應用程序尋找環境時,我確實看到了可用於該應用程序的屬性(cf env app_name)

我可能錯過了什么? 我是否必須包括

  1. 我現在沒有的pom中的cloudfoundry-runtime?
  2. 或在spring應用程序中包含雲名稱空間

任何提及cloudfoundry-runtime文檔cloudfoundry-runtime過時。 當前文檔建議對Cloud Foundry上的Spring應用程序使用Spring Cloud Connector。

您應該在項目中包含Spring Cloud Connectors ,然后您可以執行以下操作:

<cloud:data-source id="datasource" service-name="mysql-service"/>

如果確實需要更多控制,也可以使用屬性占位符自己創建datasource bean。 有關通過XML配置Spring Cloud Connector的其他文檔在這里: https : //github.com/spring-cloud/spring-cloud-connectors/tree/master/spring-cloud-spring-service-connector#the-cloud-namespace

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM