将 mysql 服务绑定到 PCF 中的船长服务器时出现 java.lang.IllegalStateException
Posted
技术标签:
【中文标题】将 mysql 服务绑定到 PCF 中的船长服务器时出现 java.lang.IllegalStateException【英文标题】:java.lang.IllegalStateException when binding mysql service to skipper server in PCF 【发布时间】:2019-12-21 20:00:31 【问题描述】:-
我已经在 PCF 中推送了 scdf 服务器 jar 和 skipper 服务器,现在我想将现有的 DB 即 H2 更改为 mysql,为此我已经从市场创建了 MySQL 服务,但是当我尝试将 MySQL 服务绑定到我遇到异常的船长服务器应用程序
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.
我尝试将 JBP_CONFIG_SPRING_AUTO_RECONFIGURATION 'enabled: false'
应用于 skipper 服务器环境变量,但仍然遇到相同的异常。
使用的船长版本:2.1.0
【问题讨论】:
【参考方案1】:从 v2.0 开始,SCDF 和 Skipper 切换到 Java-CFEnv 项目以在 CF 中自动配置数据源和其他服务。
在这个基础上,特别是在 CF 上,您必须显式地覆盖 2 个额外的属性,这样我们才能成功地消除 Java-Buildpack 及其在运行时的自动重新配置冲突。而且,这些属性是:
SPRING_PROFILES_ACTIVE: cloud
JBP_CONFIG_SPRING_AUTO_RECONFIGURATION: 'enabled: false'
它们都包含在SCDF for CF 入门指南的示例清单文件中。
此外,如果您使用SCDF for PCF 磁贴,则不必配置所有这些属性。当您在组织/空间中为 SCDF 创建服务实例时,它们会自动为您提供。
【讨论】:
谢谢萨比。我们的组织确实提供了内置消息传递和数据存储的 SCDF 服务。但是当我使用该服务时,我无法应用诸如 enableRandomAppNamePrefix 之类的属性。大多数属性都在船长服务器级别应用,但每当我使用市场 scdf 服务时,我都无法访问船长服务器 env 属性,如果我在 scdf 服务配置实例中应用这些属性,则不会被应用。我在这里为市场 scdf 服务做错了什么吗? 我在尝试使用 SCS 和 MySQL 在 PWS 上部署应用程序时遇到了同样的问题。有趣的是,我可以单独使用它们中的每一个,但不能同时使用它们。我按照您的指导解决了问题。在使用 Java-Buildpack 的自动重新配置时,它们之间似乎存在冲突。非常感谢@Pravin 和 Sabby。以上是关于将 mysql 服务绑定到 PCF 中的船长服务器时出现 java.lang.IllegalStateException的主要内容,如果未能解决你的问题,请参考以下文章