#java #oracle #spring-boot #spring-cloud #cloud-foundry
Вопрос:
Я работаю над весенней загрузкой и пытаюсь прочитать учетные данные из среды PCF. Для этого я использую spring-boot-starter-cloud-connectors
в качестве зависимости.
MyMain.java
@PostConstruct
public void intProcess() {
try {
Cloud cloud = new CloudFactory().getCloud();
OracleServiceInfo serviceInfo = (OracleServiceInfo) cloud.getServiceInfo("DbDetails");
DataSource dataSource = new OracleDataSourceCreator().create(serviceInfo, null);
JdbcTemplate template = new JdbcTemplate();
template.setDataSource(dataSource);
} catch (CloudException ex) {
System.out.println("Error in DB connection:" ex.getMessage());
} catch (Exception ex) {
System.out.println("Error in DB connection:" ex.getMessage());
}
}
Применение.свойства:-
spring.profiles.active=cloud
Манифест.yml:-
applications:
- name: name
memory: 1G
instances: 1
path: ./target/1-SNAPSHOT.jar
buildpack: java_buildpack_offline
services:
- DbDetails
env:
JBP_CONFIG_OPEN_JDK_JRE: '{ jre: { version: 11. } }'
JBP_CONFIG_SPRING_AUTO_RECONFIGURATION: '{enabled: false}'
SPRING_PROFILES_ACTIVE: cloud
pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>
spring-boot-starter-cloud-connectors
</artifactId>
</dependency>
<dependency>
<groupId>com.oracle.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>12.2.0.1</version>
</dependency>
С помощью приведенного выше кода я получаю
ERROR --- [ main] o.s.boot.SpringApplication : Application run failed
2021-06-28T17:18:15.683 05:30 [OUT] java.lang.IllegalStateException: Exiting the application since the Spring Cloud Connector library has been detected on the classpath. Please remove this dependency from your project and set the environment variable JBP_CONFIG_SPRING_AUTO_RECONFIGURATION '{enabled: false}' in the Cloud Foundry manifest.
Комментарии:
1. По сути, это говорит вам не использовать Spring Cloud Connector. Этот проект был признан устаревшим. Рекомендуется использовать: github.com/pivotal-cf/java-cfenv идем вперед. Есть ли причина, по которой вам нужен SCC?
2. @DanielMikusa Нужно прочитать учетные данные oracle из PCF env, поэтому я использую SCC
3. Хорошо, но вы также должны уметь использовать java-cfenv с Oracle. Это поддерживаемая база данных.