当前位置: 首页 > 知识库问答 >
问题:

创建在类路径资源中定义名为“jpa vendoradapter”的bean时出错

元阳荣
2023-03-14

尝试在云代工中部署springboot项目。得到以下错误。

原因:org.springframework.beans.factory.unsatisfiedDependencyException:创建类路径资源[org/springframework/boot/autocconfigure/orm/jpa/hibernatejpaconfiguration.class]中定义的名称为'Entity ManagerFactoryBuilder'的bean时出错:通过方法'Entity ManagerFactoryBuilder'参数0表示的不满足的依赖关系;嵌套异常为org.springframework.beans.factory.beanCreationException:创建类路径资源[org/springframework/boot/autocconfigure/orm/jpa/hibernatejpaconfiguration.class]中定义的名为“JPA VendorAdapter”的bean时出错:通过工厂方法实例化bean失败;嵌套异常为org.springframework.beans.beanInstantiationException:实例化[org.springframework.orm.jpa.jpavendoradapter]失败:工厂方法“jpa vendoradapter”引发异常;嵌套异常为java.lang.RuntimeException:驱动程序com.microsoft.sqlserver.jdbc.sqlserverdriver声称不接受jdbcUrl,${vcap.services.xxx.credentials.jdbcUrl}

应用程序.属性

spring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.jpa.show-sql=true
spring.jpa.hibernate.dialect=org.hibernate.dialect.SQLServer2012Dialect

spring.datasource.url=${vcap.services.xxx.credentials.jdbcUrl}
spring.datasource.username=${vcap.services.xxx.credentials.username}
spring.datasource.password=${vcap.services.xxx.credentials.password}
implementation 'org.springframework.boot:spring-boot-starter-web'

//cloud connector
implementation 'org.springframework.boot:spring-boot-starter-cloud-connectors'

//database
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'


implementation group: 'org.springframework.boot', name: 'spring-boot-starter-jdbc'

implementation group: 'com.microsoft.sqlserver', name: 'mssql-jdbc'

compile group: 'org.springframework.cloud', name: 'spring-cloud-cloudfoundry-connector'

共有1个答案

戚学文
2023-03-14

您应该从项目中删除“org.springframework.boot:spring-boot-starter-cloud-connectors”组:“org.springframework.cloud”,名称:“spring-cloudfoundry-connectors”依赖项。

当Spring Cloud连接器JAR位于类路径上时,它们将为vcap_services中检测到的服务创建连接bean(例如,在您的示例中为datasourcebean)。因为Connectors创建的是连接bean,而不是Spring Boot,所以Spring.datasource属性被忽略。从项目中删除连接器将允许引导使用您的属性创建连接。

或者,您可以选择使用Java CFEnv从vcap_services自动设置spring.datasource属性(从项目中删除连接器之后)。

 类似资料: