java.lang.Исключение IllegalStateException: PCF

#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. Это поддерживаемая база данных.