首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有合适的ServiceConnectorCreator发现错误-弹簧云/云铸造

没有合适的ServiceConnectorCreator发现错误-弹簧云/云铸造
EN

Stack Overflow用户
提问于 2015-10-28 18:39:38
回答 1查看 12K关注 0票数 1

全,

我有一个spring引导应用程序,当我试图推到IBM /CloudFoundry时,它会给我一个错误。

这是一个spring引导应用程序,它使用spring并试图连接到关系数据库服务(sqldb,它是DB2的云版本)服务。

我可以在没有spring的情况下进行连接,在这里我在属性文件中显式地指定了来自vcap_services的db凭据。但是,我试图避免使用spring云抽象,但是得到了下面提到的错误。

我的期望是spring引导/云应该识别我绑定到应用程序的test-sqldb服务,并动态创建一个数据源。相反,当我做cf推送时,我得到了下面的错误。

假设spring引导/云对将为我编排数据源是否公平,因为我在环境中拥有db2驱动程序jar和附加服务。如果没有,能不能给我一个点,我错过了什么?

Pom.xml

代码语言:javascript
复制
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependenc

    <dependency>
        <groupId>com.ibm.db2</groupId>
        <artifactId>db2jcc </artifactId>
        <version>10.5</version>
   </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-cloudfoundry-connector</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-spring-service-connector</artifactId>
    </dependency>
</dependencies>

我在spring上下文文件中有以下配置,如下所示,如链接中所述。使用云配置文件将其与本地数据源配置分离。

spring配置--这将导入到我的spring上下文中,并在我使用云配置文件运行时生效。

代码语言:javascript
复制
<beans profile="cloud">
    <cloud:data-source id="dataSourcePref" service-name="test-sqldb">
        <!-- <cloud:pool-data-sources>
            <value>TomcatJdbc</value>
            <value>TomcatDbcp</value>
            <value>BasicDbcp</value>
        </cloud:pool-data-sources>-->
    </cloud:data-source>
</beans>    

Spring引导应用程序类

代码语言:javascript
复制
@SpringBootApplication
@ImportResource("classpath:/META-INF/spring/my-jpa-beans.xml")
public class JpaTestApplication {

    public static void main(String[] args) {
       SpringApplication.run(JpaTestApplication.class, args);
    }
 }

误差

代码语言:javascript
复制
    2015-10-28T09:47:11.11-0700 [App/0]      OUT 2015-10-28 16:47:11.115 ERROR 29 --- [           main] o.s.boot.SpringApplication               : Application startup failed
2015-10-28T09:47:11.11-0700 [App/0]      OUT org.springframework.beans.factory.BeanCreationException: Error registering service factory; nested exception is org.springframework.cloud.CloudException: No suitable ServiceConnectorCreator found: service id=test-sqldb, service info type=org.springframework.cloud.service.BaseServiceInfo, connector type=interface javax.sql.DataSource
2015-10-28T09:47:11.11-0700 [App/0]      OUT    at org.springframework.cloud.config.xml.CloudServiceIntroducer.postProcessBeanFactory(AbstractCloudServiceFactoryParser.java:90)
2015-10-28T09:47:11.11-0700 [App/0]      OUT    at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:265)
2015-10-28T09:47:11.11-0700 [App/0]      OUT    at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:177)
2015-10-28T09:47:11.11-0700 [App/0]      OUT    at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:607)
2015-10-28T09:47:11.11-0700 [App/0]      OUT    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:462)
2015-10-28T09:47:11.11-0700 [App/0]      OUT    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:117)
2015-10-28T09:47:11.11-0700 [App/0]      OUT    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:689)
2015-10-28T09:47:11.11-0700 [App/0]      OUT    at org.springframework.boot.SpringApplication.run(SpringApplication.java:321)
2015-10-28T09:47:11.11-0700 [App/0]      OUT    at org.springframework.boot.SpringApplication.run(SpringApplication.java:969)
2015-10-28T09:47:11.11-0700 [App/0]      OUT    at org.springframework.boot.SpringApplication.run(SpringApplication.java:958)
2015-10-28T09:47:11.11-0700 [App/0]      OUT    at com.example.JpaTestApplication.main(JpaTestApplication.java:14)
2015-10-28T09:47:11.11-0700 [App/0]      OUT    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2015-10-28T09:47:11.11-0700 [App/0]      OUT    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
2015-10-28T09:47:11.11-0700 [App/0]      OUT    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2015-10-28T09:47:11.11-0700 [App/0]      OUT    at java.lang.reflect.Method.invoke(Method.java:497)
2015-10-28T09:47:11.11-0700 [App/0]      OUT    at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:53)
2015-10-28T09:47:11.11-0700 [App/0]      OUT    at java.lang.Thread.run(Thread.java:745)
2015-10-28T09:47:11.11-0700 [App/0]      OUT Caused by: org.springframework.cloud.CloudException: No suitable ServiceConnectorCreator found: service id=test-sqldb, service info type=org.springframework.cloud.service.BaseServiceInfo, connector type=interface javax.sql.DataSource
2015-10-28T09:47:11.11-0700 [App/0]      OUT    at org.springframework.cloud.ServiceConnectorCreatorRegistry.getServiceCreator(Cloud.java:356)
2015-10-28T09:47:11.11-0700 [App/0]      OUT    at org.springframework.cloud.Cloud.getServiceConnector(Cloud.java:255)
2015-10-28T09:47:11.11-0700 [App/0]      OUT    at org.springframework.cloud.Cloud.getServiceConnector(Cloud.java:142)
2015-10-28T09:47:11.11-0700 [App/0]      OUT    at org.springframework.cloud.service.AbstractCloudServiceConnectorFactory.createService(AbstractCloudServiceConnectorFactory.java:103)
2015-10-28T09:47:11.11-0700 [App/0]      OUT    at org.springframework.cloud.service.AbstractCloudServiceConnectorFactory.createInstance(AbstractCloudServiceConnectorFactory.java:98)
2015-10-28T09:47:11.11-0700 [App/0]      OUT    at org.springframework.beans.factory.config.AbstractFactoryBean.afterPropertiesSet(AbstractFactoryBean.java:134)
2015-10-28T09:47:11.11-0700 [App/0]      OUT    at org.springframework.cloud.service.AbstractCloudServiceConnectorFactory.afterPropertiesSet(AbstractCloudServiceConnectorFactory.java:93)
2015-10-28T09:47:11.11-0700 [App/0]      OUT    at org.springframework.cloud.config.xml.CloudServiceIntroducer.postProcessBeanFactory(AbstractCloudServiceFactoryParser.java:82)
2015-10-28T09:47:11.11-0700 [App/0]      OUT    ... 16 common frames omitted
2015-10-28T09:47:11.26-0700 [DEA/17]     ERR Instance (index 0) failed to start accepting connections
EN

回答 1

Stack Overflow用户

发布于 2015-10-28 20:33:59

看来我明白发生了什么。

线程中的一个回答提到了服务连接器,这给了我一个提示。

SqlDb需要在我使用的1.1.1版本的春季云连接器版本中不可用的DB2DataSourceCreator。它支持MySQL、Postgres、Redis、MongoDB、RabbitMQ等。

升级到1.2.0版本,我可以通过这个错误点。谢谢你们两位想帮忙。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33399053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档