我有一個Spring MVC應用程序在本地tomcat等上運行良好。它的Spring 3.1 MVC/Hibernate應用程序。CloudFoundry MySQL Java配置
我正在使用(在可能的情況下)應用程序的純Java @Configuration - 我現在試圖將應用程序部署到CloudFoundry(通過STS),但我努力獲取配置MySql數據庫(從內存,與xml配置你不需要做任何事情,Spring/CloudFoundry會自動注入所需的用戶/密碼等,但自從我部署任何東西到CF之後,它已經有一段時間了)。
我曾嘗試以下配置的兩個:
@Bean
public BasicDataSource dataSource() throws PropertyVetoException {
//CloudFoundry config
final CloudEnvironment cloudEnvironment = new CloudEnvironment();
final List<MysqlServiceInfo> mysqlServices = cloudEnvironment.getServiceInfos(MysqlServiceInfo.class);
final MysqlServiceInfo serviceInfo = mysqlServices.get(0);
BasicDataSource bean = new BasicDataSource();
bean.setDriverClassName("com.mysql.jdbc.Driver");
bean.setUrl(serviceInfo.getUrl());
bean.setUsername(serviceInfo.getUserName());
bean.setPassword(serviceInfo.getPassword());
return bean;
}
上面上失敗列於.get(0)
線mysqlServices的界。這是基於建議here的答案。
我也試着將數據源作爲本地運行,以查看屬性是否被注入,但沒有運氣。 (下面是與價值觀試圖按照Spring的示例代碼here,並且還使用屬性佔位符從我db.connection道具文件)
@Bean
public BasicDataSource dataSource() throws PropertyVetoException {
BasicDataSource bean = new BasicDataSource();
bean.setDriverClassName("com.mysql.jdbc.Driver");
bean.setUrl("");
bean.setUsername("spring");
bean.setPassword("spring");
return bean;
}
編輯
我也用了getServiceInfo (字符串,類)方法傳遞MySql服務的名稱,我創建並綁定到應用程序,但只是NPE類似於getServiceInfos(..)方法