2

我已经使用自定义数据源创建了示例项目

micronaut:
  application:
    name: demo
datasources:
  customerDS:
    url: jdbc:h2:file:./DATA/devDB;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=TRUE
    driverClassName: org.h2.Driver
    username: sa
    password: ''
    schema-generate: CREATE_DROP
    dialect: H2
jpa.customerDS.properties.hibernate.hbm2ddl.auto: update

还创建了存储库接口,如下所示

@Repository ("customerDS")
public interface CustomerRepository
        extends CrudRepository<Customer, Long> {
}

该项目托管在 github https://github.com/micro-service-projects/demo-custom-datasourceName

当我运行应用程序并访问端点时,出现如下错误:

curl -X GET http://localhost:8080/customer {"message":"内部服务器错误:实例化类型为 [com.example.CustomerController] 的 bean 时出错:没有为存储库配置支持 RepositoryOperations。检查您的配置并重试” }

控制台错误信息如下:

gradle干净运行

任务:compileJava 注意:为 3 种类型元素创建 bean 类

任务:运行 15:56:12.552 [main] INFO io.micronaut.runtime.Micronaut - 启动在 1494 毫秒内完成。服务器运行:http://localhost:8080 15:56:26.239 [nioEventLoopGroup-1-2] 错误 imhsnetty.RoutingInBoundHandler - 发生意外错误:错误实例化类型 [com.example.CustomerController] 的 bean:没有为存储库配置支持 RepositoryOperations . 检查您的配置并重试 检查您的配置,然后在 io.micronaut.context.DefaultBeanContext.createAndRegisterSingletonInternal(DefaultBeanContext.java:2635) 在 io.micronaut.context 的 io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1918) 重试。run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.lang.Thread.run(Thread.java:748) 原因:io.micronaut.context .exceptions.ConfigurationException:没有为存储库配置支持 RepositoryOperations。检查您的配置,然后在 io.micronaut.data.intercept.DataIntroductionAdvice.intercept(DataIntroductionAdvice.java:78) 在 io.micronaut.aop 的 io.micronaut.data.intercept.DataIntroductionAdvice.findInterceptor(DataIntroductionAdvice.java:124) 重试.chain.MethodInterceptorChain.proceed(MethodInterceptorChain.java:69) at io.micronaut.validation.ValidatingInterceptor.intercept(ValidatingInterceptor.java:106) at io.micronaut.aop.chain.MethodInterceptorChain.proceed(MethodInterceptorChain.java:69) at com.example.CustomerRepository$拦截。保存(未知来源)在 com.example.CustomerController.postSample(CustomerController.java:23) 在 com.example.$CustomerControllerDefinition.initialize(Unknown Source) 在 com.example.$CustomerControllerDefinition.build(Unknown Source) 在 io.micronaut .context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1889) ... 省略了 82 个公共帧 原因:io.micronaut.context.exceptions.NoSuchBeanException:没有 [io.micronaut.data.operations.PrimaryRepositoryOperations] 类型的 bean 存在给定的限定符:@Named('customerDS')。确保 bean 没有被 bean 要求禁用(启用跟踪日志以检查“io.micronaut.context.condition”),如果启用了 bean,则确保将类声明为 bean 并启用注释处理(对于 Java 和Kotlin 的“micronaut-inject-java” 依赖项应配置为注释处理器)。在 io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:2281) 在 io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:716) 在 io.micronaut.data.intercept.DataIntroductionAdvice.findInterceptor(DataIntroductionAdvice.java :119) ... 91 个通用框架省略 16:12:11.044 [nioEventLoopGroup-1-3] 错误 imhsnetty.RoutingInBoundHandler - 发生意外错误:实例化类型 [com.example.CustomerController] 的 bean 时出错:没有为存储库配置支持 RepositoryOperations . 检查您的配置并重试 processSelectedKeysOptimized(NioEventLoop.java:650) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:576) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493) at io.netty .util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable .java:30) at java.lang.Thread.run(Thread.java:748) 原因:io.micronaut.context.exceptions.ConfigurationException:没有为存储库配置支持 RepositoryOperations。检查您的配置并在 io.micronaut.data.intercept.DataIntroductionAdvice.intercept(DataIntroductionAdvice.java: 的 io.micronaut.data.intercept.DataIntroductionAdvice.findInterceptor(DataIntroductionAdvice.java:124) 重试:客户DS')。确保 bean 没有被 bean 要求禁用(启用跟踪日志以检查“io.micronaut.context.condition”),如果启用了 bean,则确保将类声明为 bean 并启用注释处理(对于 Java 和Kotlin 的“micronaut-inject-java”依赖项应配置为注解处理器)。在 io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:2281) 在 io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:716) 在 io.micronaut.data.intercept.DataIntroductionAdvice.findInterceptor(DataIntroductionAdvice.java :119) ... 91 个常用帧省略 <==========---> 80% 执行 [24m 44s] :run 检查),如果启用了 bean,则确保将类声明为 bean 并启用注释处理(对于 Java 和 Kotlin,'micronaut-inject-java' 依赖项应配置为注释处理器)。在 io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:2281) 在 io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:716) 在 io.micronaut.data.intercept.DataIntroductionAdvice.findInterceptor(DataIntroductionAdvice.java :119) ... 91 个常用帧省略 <==========---> 80% 执行 [24m 44s] :run 检查),如果启用了 bean,则确保将类声明为 bean 并启用注释处理(对于 Java 和 Kotlin,'micronaut-inject-java' 依赖项应配置为注释处理器)。在 io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:2281) 在 io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:716) 在 io.micronaut.data.intercept.DataIntroductionAdvice.findInterceptor(DataIntroductionAdvice.java :119) ... 91 个常用帧省略 <==========---> 80% 执行 [24m 44s] :run

4

0 回答 0