【问题标题】:UnsatisfiedDependencyException after adding dependencies添加依赖项后出现 UnsatisfiedDependencyException
【发布时间】:2019-05-19 15:12:07
【问题描述】:

您好,我在路径中添加了依赖项和 ojdbc,但仍然收到 UnsatisfiesDependencyexception。

依赖关系

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
        <dependency>
        <groupId> oracle </groupId>
        <artifactId>ojdbc6</artifactId>
        <version>11.2.0</version>
        <scope>system</scope>
        <systemPath>${project.basedir}/src/main/resources/ojdbc6.jar</systemPath>
    </dependency>

我把ojdbc6.jar放在src/main/resources中

界面ADAO

public interface ADao{
 A membershipFromxUsernameActive( String xUsername);
}

接口 ARepo

public interface ARepository extends Repository{

 @Query(value="SELECT m FROM A m where lower(m.x) = lower(:key) AND m.y='ACT'",nativeQuery=true)
    A fetchADetails(@Param("key") String key);

}

错误 即使我搜索了许多网站,也给出了解决方案,但我没有为我工作。

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaConfiguration': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [OracleConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [javax.sql.DataSource]: Factory method 'dataSource' threw exception; nested exception is java.sql.SQLException: Connection Caching Not Enabled or Not a Valid Cache Enabled DataSource
    at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:729) ~[spring-beans-5.0.4.RELEASE.jar:5.0.4.RELEASE]
    at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:192) ~[spring-beans-5.0.4.RELEASE.jar:5.0.4.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1270) ~[spring-beans-5.0.4.RELEASE.jar:5.0.4.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1127) ~[spring-beans-5.0.4.RELEASE.jar:5.0.4.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545) ~[spring-beans-5.0.4.RELEASE.jar:5.0.4.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502) ~[spring-beans-5.0.4.RELEASE.jar:5.0.4.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312) ~[spring-beans-5.0.4.RELEASE.jar:5.0.4.RELEASE]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228) ~[spring-beans-5.0.4.RELEASE.jar:5.0.4.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310) ~[spring-beans-5.0.4.RELEASE.jar:5.0.4.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-5.0.4.RELEASE.jar:5.0.4.RELEASE]

    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_191]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_191]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.8.0_191]
    at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) [spring-boot-devtools-2.0.0.RELEASE.jar:2.0.0.RELEASE]
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource  Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [javax.sql.DataSource]: Factory method 'dataSource' threw exception; nested exception is java.sql.SQLException: Connection Caching Not Enabled or Not a Valid Cache Enabled DataSource
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:587) ~[spring-beans-5.0.4.RELEASE.jar:5.0.4.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1250) ~[spring-beans-5.0.4.RELEASE.jar:5.0.4.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1099) ~[spring-beans-5.0.4.RELEASE.jar:5.0.4.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545) ~[spring-beans-5.0.4.RELEASE.jar:5.0.4.RELEASE]

【问题讨论】:

  • 发布您的 application.property 内容
  • ...还有OracleConfiguration
  • 使用${basedir} 而不是${project.basedir}
  • #Oracle连接oracle.username=root oracle.password=xxx oracle.url=jdbc:oracle:thin:@//xyz.amazonaws.com:1521/ABC spring.jpa.hibernate.ddl -auto=create-drop spring.jpa.database-platform=org.hibernate.dialect.Oracle10gDialect
  • @Ubercool 没用对不起

标签: java spring spring-data-jpa datasource pom.xml


【解决方案1】:

似乎在启动 spring boot 之前必须先启用数据源缓存,尝试在您的配置中添加这些属性

在此提及 - https://community.oracle.com/thread/867795

【讨论】:

  • How do I write a good answer? - 为链接提供上下文鼓励链接到外部资源,但请在链接周围添加上下文,以便您的其他用户会知道它是什么以及为什么存在。 始终引用重要链接中最相关的部分,以防目标站点无法访问或永久离线。
【解决方案2】:

添加 @自动连线 数据源数据库; in service 解决了这个问题。

谢谢大家。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-05
    • 1970-01-01
    • 1970-01-01
    • 2016-11-27
    • 2020-12-08
    • 1970-01-01
    • 1970-01-01
    • 2017-12-03
    相关资源
    最近更新 更多