Search code examples
spring-cloud-dataflowspring-cloud-skipper

java.lang.IllegalStateException when binding mysql service to skipper server in PCF


  1. I have pushed the scdf server jar and skipper server in PCF, now I want to change the existing DB i.e. H2 to MySQL, For this I have created the MySQL service from marketplace , but when I tried to bind the MySQL service to skipper server app I am getting below exception
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. I tried to apply JBP_CONFIG_SPRING_AUTO_RECONFIGURATION '{enabled: false}' to skipper server environment variable but I still gets the same exception.

  2. As per the exception I need to remove `Spring cloud connector libraryv from classpath, but I have used to push skkiper server jar to pcf, so how can I remove this dependency(do I need to take skipper server code and manually remove the dependency ? If yes then what is the dependency I need to exclude in maven ?)

skipper version used : 2.1.0


Solution

  • Starting with v2.0, SCDF and Skipper switched to the Java-CFEnv project to autoconfigure datasource and other services automatically in CF.

    In this foundation, specifically on CF, you'd have to explicitly override 2 extra properties, so that we can successfully negate the Java-Buildpack and its Auto-reconfiguration conflicts at runtime. And, those properties are:

    SPRING_PROFILES_ACTIVE: cloud
    JBP_CONFIG_SPRING_AUTO_RECONFIGURATION: '{enabled: false}'
    

    They are both included in the sample manifest files in the SCDF for CF getting-started guide.

    Also, if you are using SCDF for PCF tile, you don't have to configure all of these properties. They are automatically provisioned for you when you create a service-instance for SCDF in the Org/Space.