Closed Deviad closed 3 years ago
OK, I inspired myself from here: https://github.com/micronaut-projects/micronaut-data/blob/master/examples/example-jpa/build.gradle#L6
And I got this config:
import com.moowork.gradle.node.yarn.YarnTask
/*
* This file was generated by the Gradle 'init' task.
*/
buildscript {
repositories {
maven {
url "https://repo1.maven.org/maven2/"
}
jcenter()
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "net.ltgt.gradle:gradle-apt-plugin:0.21"
classpath "com.github.node-gradle:gradle-node-plugin:2.2.3"
classpath "com.github.jengelman.gradle.plugins:shadow:6.0.0"
classpath "org.hibernate:hibernate-gradle-plugin:5.4.3.Final"
}
}
plugins {
id "com.google.cloud.tools.jib"
id "com.diffplug.eclipse.apt" version "3.23.0"
id "org.springframework.boot"
id "io.spring.dependency-management"
}
apply plugin: 'java'
apply plugin: 'application'
apply plugin: 'maven'
apply plugin: 'maven-publish'
apply plugin: "com.github.node-gradle.node"
apply plugin: "com.github.johnrengelman.shadow"
setSourceCompatibility(JavaVersion.VERSION_11)
setTargetCompatibility(JavaVersion.VERSION_11)
description = "agrilinkresource"
mainClassName = "com.agrilink.agrilinkresource.AgrilinkResourceServer"
archivesBaseName = "agrilinkresource"
//assert System.properties["java.specification.version"] == "1.8" || "11"
//assert System.properties["java.specification.version"] == "1.8" || "11" || "12" | "13"
ext {
mapstructVersion = '1.3.1.Final'
micronautVersion = '2.0.0'
micronautKafka = '1.2.0'
micronautSecurityJwt = '1.3.1'
micronautTestJunit = '1.1.5'
}
jib.to.image = "localhost:5000/agrilink-resource"
jib.from.image = "localhost:5000/openjdk-11"
jib.setAllowInsecureRegistries(true)
configurations {
// for dependencies that are needed for development only
developmentOnly
}
dependencies {
def excludeJackson = {
exclude group: "com.fasterxml.jackson.core", module: "jackson-core"
exclude group: "com.fasterxml.jackson.core", module: "jackson-databind"
exclude group: "com.fasterxml.jackson.core", module: "jackson-annotations"
exclude group: "com.fasterxml.jackson.jaxrs", module: "jackson-jaxrs-json-provider"
exclude group: "com.fasterxml.jackson.dataformat", module: "jackson-dataformat-yaml"
exclude group: "com.fasterxml.jackson.datatype", module: "jackson-datatype-jsr310"
}
implementation(enforcedPlatform("io.micronaut:micronaut-bom:$micronautVersion"))
implementation("com.fasterxml.jackson.core:jackson-annotations:2.11.0")
implementation("com.fasterxml.jackson.core:jackson-core:2.11.0")
implementation("com.fasterxml.jackson.core:jackson-databind:2.11.0")
implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.11.0")
implementation("com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:2.11.0")
implementation("io.micronaut.reactor:micronaut-reactor:1.0.0")
annotationProcessor("io.micronaut.data:micronaut-data-processor:1.1.1")
implementation("io.micronaut.data:micronaut-data-hibernate-jpa:1.1.1")
testImplementation(enforcedPlatform("io.micronaut:micronaut-bom:$micronautVersion"))
annotationProcessor(enforcedPlatform("io.micronaut:micronaut-bom:$micronautVersion"))
testAnnotationProcessor(enforcedPlatform("io.micronaut:micronaut-bom:$micronautVersion"))
implementation "io.micronaut.configuration:micronaut-hibernate-jpa:2.2.6"
// annotationProcessor "org.jooq:jooq-codegen:3.13.1"
// https://mvnrepository.com/artifact/org.jooq/jooq-codegen
compile project(":agrilinkshared")
// implementation 'io.opentracing.brave:brave-opentracing:0.34.2'
implementation("org.keycloak:keycloak-admin-client:9.0.0", excludeJackson)
implementation("org.keycloak:keycloak-core:9.0.0", excludeJackson)
implementation "org.jboss.resteasy:resteasy-multipart-provider:3.9.3.Final"
// implementation "org.jboss.resteasy:resteasy-jackson2-provider:3.9.3.Final"
implementation("io.micronaut.security:micronaut-security-oauth2")
implementation("io.micronaut:micronaut-aop")
implementation( "io.micronaut:micronaut-security")
// implementation "io.micronaut:micronaut-tracing:${micronautVersion}"
implementation "io.micronaut:micronaut-security-jwt:${micronautSecurityJwt}"
implementation "io.micronaut:micronaut-discovery-client:${micronautVersion}"
implementation "io.micronaut.sql:micronaut-jdbc-hikari"
implementation "javax.annotation:javax.annotation-api"
implementation "io.micronaut:micronaut-http-client"
implementation "io.micronaut:micronaut-inject"
implementation "io.micronaut:micronaut-validation"
implementation "io.micronaut:micronaut-runtime"
annotationProcessor("io.micronaut.configuration:micronaut-openapi:1.5.1")
implementation("io.swagger.core.v3:swagger-annotations", excludeJackson)
// compile "io.micronaut.configuration:micronaut-kafka:${micronautKafka}"
// compile "io.micronaut.configuration:micronaut-kafka-streams:${micronautKafka}"
implementation "io.micronaut:micronaut-http-server-netty"
implementation "org.jooq:jool:0.9.14"
implementation 'org.jooq:jooq'
implementation "net.jodah:failsafe:2.3.1"
implementation "io.projectreactor:reactor-core:3.3.7.RELEASE"
implementation "an.awesome:pipelinr:0.3"
// runtime "io.zipkin.brave:brave-instrumentation-http:5.6.5"
// runtime "io.zipkin.reporter2:zipkin-reporter:2.10.0"
runtimeOnly "ch.qos.logback:logback-classic:1.2.3"
implementation "com.google.guava:guava:28.1-jre"
testImplementation "org.junit.jupiter:junit-jupiter-api"
testImplementation "io.micronaut.test:micronaut-test-junit5"
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine"
compileOnly 'org.projectlombok:lombok:1.18.12'
annotationProcessor 'org.projectlombok:lombok:1.18.12'
testCompileOnly 'org.projectlombok:lombok:1.18.12'
testAnnotationProcessor 'org.projectlombok:lombok:1.18.12'
implementation "org.mapstruct:mapstruct:${mapstructVersion}"
annotationProcessor "org.mapstruct:mapstruct-processor:${mapstructVersion}"
annotationProcessor "io.micronaut.spring:micronaut-spring-annotation"
annotationProcessor "io.micronaut:micronaut-inject-java"
annotationProcessor "io.micronaut:micronaut-validation"
testAnnotationProcessor "io.micronaut:micronaut-inject-java"
implementation 'org.postgresql:postgresql:42.2.12'
annotationProcessor "javax.persistence:javax.persistence-api:2.2"
implementation "org.hibernate:hibernate-validator:6.1.4.Final"
implementation "org.apache.commons:commons-lang3:3.10"
developmentOnly("io.micronaut:micronaut-runtime-osx:$micronautVersion")
// compile "io.micronaut:micronaut-spring:1.3.3"
// runtime "org.springframework:spring-jdbc:5.1.14.RELEASE"
}
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
options.compilerArgs.addAll([
'-parameters',
// enables incremental compilation
'-Amicronaut.processing.incremental=true',
'-Amicronaut.processing.annotations=com.agrilink.agrilinkresource.*',
])
}
tasks.withType(JavaCompile) {
options.compilerArgs = [
'-Amapstruct.suppressGeneratorTimestamp=true'
]
if (System.properties['agrilink.env'] == 'develop') {
options.fork = true
options.forkOptions.jvmArgs << '-Dmicronaut.openapi.views.spec=rapidoc.enabled=true,swagger-ui.enabled=true,swagger-ui.theme=flattop'
}
}
//tasks.register("copyReactAppToTarget")
//tasks.register("copyReactAppToTargetResources")
task "copyReactAppToTarget"(type: Copy) {
from("src/main/app")
into("target/app-src")
}
task "bundle"(type: YarnTask) {
dependsOn(yarn)
setWorkingDir(file("target/app-src"))
args = ["build"]
}
task "copyReactAppToTargetResources"(type: Copy) {
dependsOn(bundle)
from("target/app-src/build")
into("target/resources/main/app")
}
yarn {
dependsOn(copyReactAppToTarget)
}
run {
if (System.properties['agrilink.env'] == 'develop') {
dependsOn(build) // this is for swagger
// dependsOn(copyReactAppToTargetResources) // this is to test React app within application container
}
main = "com.agrilink.agrilinkresource.AgrilinkResourceServer"
// args("--spring.profiles.active=demo")
}
shadowJar {
transform(com.github.jengelman.gradle.plugins.shadow.transformers.Log4j2PluginsCacheFileTransformer)
}
tasks.withType(GroovyCompile) {
groovyOptions.forkOptions.jvmArgs.add('-Dgroovy.parameters=true')
}
shadowJar {
dependsOn(copyReactAppToTargetResources)
mergeServiceFiles()
}
node {
version = "12.16.1"
yarnVersion = "1.22.4"
download = true
buildDir = file("target")
distBaseUrl = "https://nodejs.org/dist"
// yarnWorkDir = file("${project.buildDir}/yarn")
workDir = file("$buildDir/app/nodejs")
yarnWorkDir = file("$buildDir/app/yarn")
// nodeModulesDir = file("${project.buildDir}/resources/main/react-app")
nodeModulesDir = file("$buildDir/app-src")
}
jibDockerBuild {
// dependsOn(runShadow)
System.setProperty('micronaut.openapi.views.spec', 'rapidoc.enabled=true,swagger-ui.enabled=true,swagger-ui.theme=flattop')
dependsOn(build)
}
tasks.withType(JavaExec) {
classpath += configurations.developmentOnly
jvmArgs('-XX:TieredStopAtLevel=1', '-Dcom.sun.management.jmxremote')
if (gradle.startParameter.continuous) {
systemProperties(
'micronaut.io.watch.restart':'true',
'micronaut.io.watch.enabled':'true',
"micronaut.io.watch.paths":"src/main"
)
}
}
//hibernate {
// enhance {
// enableLazyInitialization= true
// enableDirtyTracking = true
// enableAssociationManagement = true
// }
//}
I have removed jooq entirely and I still run into the same issue as above. In addition, Gradle returns an error if I activate this:
//hibernate {
// enhance {
// enableLazyInitialization= true
// enableDirtyTracking = true
// enableAssociationManagement = true
// }
//}
from the looks of the exception is seems that org.hibernate.graph.RootGraph
is not the classpath or is using a conflicting version. From the information provided it is hard to tell for sure however. Please provide the full stack trace.
Hello @graemerocher , thank you for your reply, this is it:
Message: Error loading bean [io.micronaut.configuration.hibernate.jpa.TransactionalSession$Intercepted]: org/hibernate/graph/RootGraph
Path Taken: new $UserControllerDefinition$Intercepted([UserService userService],BeanContext beanContext,Qualifier qualifier,Interceptor[] interceptors) --> new UserService(UserServiceDependencyBundle bundle,String apiKey,ProducerRepository producerRepository,[EntityManager entityManager])
io.micronaut.context.exceptions.BeanInstantiationException: Error instantiating bean of type [com.agrilink.agrilinkresource.service.user.UserService]
Message: Error loading bean [io.micronaut.configuration.hibernate.jpa.TransactionalSession$Intercepted]: org/hibernate/graph/RootGraph
Path Taken: new $UserControllerDefinition$Intercepted([UserService userService],BeanContext beanContext,Qualifier qualifier,Interceptor[] interceptors) --> new UserService(UserServiceDependencyBundle bundle,String apiKey,ProducerRepository producerRepository,[EntityManager entityManager])
at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1915)
at io.micronaut.context.DefaultBeanContext.createAndRegisterSingletonInternal(DefaultBeanContext.java:2630)
at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2616)
at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:2299)
at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:2273)
at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1233)
at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:1035)
at com.agrilink.agrilinkresource.resource.user.$$UserControllerDefinition$InterceptedDefinition.build(Unknown Source)
at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1888)
at io.micronaut.context.DefaultBeanContext.createAndRegisterSingletonInternal(DefaultBeanContext.java:2630)
at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2616)
at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:2299)
at io.micronaut.context.DefaultBeanContext.access$100(DefaultBeanContext.java:78)
at io.micronaut.context.DefaultBeanContext$4.getTarget(DefaultBeanContext.java:425)
at io.micronaut.context.DefaultBeanContext$4.invoke(DefaultBeanContext.java:468)
at io.micronaut.web.router.AbstractRouteMatch.execute(AbstractRouteMatch.java:313)
at io.micronaut.web.router.RouteMatch.execute(RouteMatch.java:117)
at io.micronaut.http.server.netty.RoutingInBoundHandler.lambda$buildResultEmitter$11(RoutingInBoundHandler.java:1304)
at io.reactivex.internal.operators.flowable.FlowableDefer.subscribeActual(FlowableDefer.java:35)
at io.reactivex.Flowable.subscribe(Flowable.java:14918)
at io.reactivex.Flowable.subscribe(Flowable.java:14865)
at io.reactivex.internal.operators.flowable.FlowableDefer.subscribeActual(FlowableDefer.java:42)
at io.reactivex.Flowable.subscribe(Flowable.java:14918)
at io.reactivex.Flowable.subscribe(Flowable.java:14865)
at io.micronaut.reactive.rxjava2.RxInstrumentedFlowable.subscribeActual(RxInstrumentedFlowable.java:58)
at io.reactivex.Flowable.subscribe(Flowable.java:14918)
at io.reactivex.Flowable.subscribe(Flowable.java:14865)
at io.reactivex.internal.operators.flowable.FlowableSwitchIfEmpty$SwitchIfEmptySubscriber.onComplete(FlowableSwitchIfEmpty.java:71)
at io.micronaut.reactive.rxjava2.RxInstrumentedSubscriber.onComplete(RxInstrumentedSubscriber.java:73)
at io.reactivex.internal.operators.flowable.FlowableFlatMap$MergeSubscriber.drainLoop(FlowableFlatMap.java:426)
at io.reactivex.internal.operators.flowable.FlowableFlatMap$MergeSubscriber.drain(FlowableFlatMap.java:366)
at io.reactivex.internal.operators.flowable.FlowableFlatMap$MergeSubscriber.onComplete(FlowableFlatMap.java:338)
at io.micronaut.reactive.rxjava2.RxInstrumentedSubscriber.onComplete(RxInstrumentedSubscriber.java:73)
at io.reactivex.internal.operators.maybe.MaybeToFlowable$MaybeToFlowableSubscriber.onComplete(MaybeToFlowable.java:80)
at io.micronaut.reactive.rxjava2.RxInstrumentedMaybeObserver.onComplete(RxInstrumentedMaybeObserver.java:72)
at io.reactivex.internal.operators.maybe.MaybeDoOnEvent$DoOnEventMaybeObserver.onComplete(MaybeDoOnEvent.java:115)
at io.micronaut.reactive.rxjava2.RxInstrumentedMaybeObserver.onComplete(RxInstrumentedMaybeObserver.java:72)
at io.reactivex.internal.operators.flowable.FlowableElementAtMaybe$ElementAtSubscriber.onComplete(FlowableElementAtMaybe.java:102)
at io.micronaut.reactive.rxjava2.RxInstrumentedSubscriber.onComplete(RxInstrumentedSubscriber.java:73)
at io.reactivex.internal.operators.flowable.FlowableFlatMap$MergeSubscriber.drainLoop(FlowableFlatMap.java:426)
at io.reactivex.internal.operators.flowable.FlowableFlatMap$MergeSubscriber.drain(FlowableFlatMap.java:366)
at io.reactivex.internal.operators.flowable.FlowableFlatMap$MergeSubscriber.onComplete(FlowableFlatMap.java:338)
at io.micronaut.reactive.rxjava2.RxInstrumentedSubscriber.onComplete(RxInstrumentedSubscriber.java:73)
at io.reactivex.internal.operators.flowable.FlowableFromIterable$IteratorSubscription.slowPath(FlowableFromIterable.java:255)
at io.reactivex.internal.operators.flowable.FlowableFromIterable$BaseRangeSubscription.request(FlowableFromIterable.java:124)
at io.reactivex.internal.operators.flowable.FlowableFlatMap$MergeSubscriber.onSubscribe(FlowableFlatMap.java:117)
at io.micronaut.reactive.rxjava2.RxInstrumentedSubscriber.onSubscribe(RxInstrumentedSubscriber.java:52)
at io.reactivex.internal.operators.flowable.FlowableFromIterable.subscribe(FlowableFromIterable.java:69)
at io.reactivex.internal.operators.flowable.FlowableFromIterable.subscribeActual(FlowableFromIterable.java:47)
at io.reactivex.Flowable.subscribe(Flowable.java:14918)
at io.reactivex.Flowable.subscribe(Flowable.java:14865)
at io.micronaut.reactive.rxjava2.RxInstrumentedFlowable.subscribeActual(RxInstrumentedFlowable.java:58)
at io.reactivex.Flowable.subscribe(Flowable.java:14918)
at io.reactivex.internal.operators.flowable.FlowableFlatMap.subscribeActual(FlowableFlatMap.java:53)
at io.reactivex.Flowable.subscribe(Flowable.java:14918)
at io.reactivex.internal.operators.flowable.FlowableElementAtMaybe.subscribeActual(FlowableElementAtMaybe.java:36)
at io.reactivex.Maybe.subscribe(Maybe.java:4290)
at io.micronaut.reactive.rxjava2.RxInstrumentedMaybe.subscribeActual(RxInstrumentedMaybe.java:53)
at io.reactivex.Maybe.subscribe(Maybe.java:4290)
at io.reactivex.internal.operators.maybe.MaybeDoOnEvent.subscribeActual(MaybeDoOnEvent.java:39)
at io.reactivex.Maybe.subscribe(Maybe.java:4290)
at io.reactivex.internal.operators.maybe.MaybeToFlowable.subscribeActual(MaybeToFlowable.java:45)
at io.reactivex.Flowable.subscribe(Flowable.java:14918)
at io.reactivex.internal.operators.flowable.FlowableFlatMap.subscribeActual(FlowableFlatMap.java:53)
at io.reactivex.Flowable.subscribe(Flowable.java:14918)
at io.reactivex.internal.operators.flowable.FlowableSwitchIfEmpty.subscribeActual(FlowableSwitchIfEmpty.java:32)
at io.reactivex.Flowable.subscribe(Flowable.java:14918)
at io.reactivex.Flowable.subscribe(Flowable.java:14865)
at io.micronaut.http.server.context.ServerRequestContextFilter$1.subscribe(ServerRequestContextFilter.java:65)
at io.reactivex.internal.operators.flowable.FlowableFromPublisher.subscribeActual(FlowableFromPublisher.java:29)
at io.reactivex.Flowable.subscribe(Flowable.java:14918)
at io.reactivex.Flowable.subscribe(Flowable.java:14868)
at io.micronaut.http.server.netty.RoutingInBoundHandler.lambda$buildExecutableRoute$5(RoutingInBoundHandler.java:1008)
at io.micronaut.web.router.DefaultUriRouteMatch$1.execute(DefaultUriRouteMatch.java:81)
at io.micronaut.web.router.RouteMatch.execute(RouteMatch.java:117)
at io.micronaut.http.server.netty.RoutingInBoundHandler$1.executeRoute(RoutingInBoundHandler.java:941)
at io.micronaut.http.server.netty.RoutingInBoundHandler$1.doOnComplete(RoutingInBoundHandler.java:934)
at io.micronaut.core.async.subscriber.CompletionAwareSubscriber.onComplete(CompletionAwareSubscriber.java:71)
at io.micronaut.http.server.netty.jackson.JsonContentProcessor$1.doOnComplete(JsonContentProcessor.java:140)
at io.micronaut.core.async.subscriber.CompletionAwareSubscriber.onComplete(CompletionAwareSubscriber.java:71)
at java.base/java.util.Optional.ifPresent(Optional.java:176)
at io.micronaut.core.async.processor.SingleThreadedBufferingProcessor.doOnComplete(SingleThreadedBufferingProcessor.java:48)
at io.micronaut.jackson.parser.JacksonProcessor.doOnComplete(JacksonProcessor.java:133)
at io.micronaut.core.async.subscriber.SingleThreadedBufferingSubscriber.onComplete(SingleThreadedBufferingSubscriber.java:70)
at io.micronaut.http.server.netty.jackson.JsonContentProcessor.doOnComplete(JsonContentProcessor.java:165)
at io.micronaut.core.async.subscriber.CompletionAwareSubscriber.onComplete(CompletionAwareSubscriber.java:71)
at io.micronaut.http.netty.reactive.HandlerPublisher.complete(HandlerPublisher.java:498)
at io.micronaut.http.netty.reactive.HandlerPublisher.handlerRemoved(HandlerPublisher.java:485)
at io.netty.channel.AbstractChannelHandlerContext.callHandlerRemoved(AbstractChannelHandlerContext.java:972)
at io.netty.channel.DefaultChannelPipeline.callHandlerRemoved0(DefaultChannelPipeline.java:638)
at io.netty.channel.DefaultChannelPipeline.remove(DefaultChannelPipeline.java:481)
at io.netty.channel.DefaultChannelPipeline.remove(DefaultChannelPipeline.java:427)
at io.micronaut.http.netty.stream.HttpStreamsHandler.removeHandlerIfActive(HttpStreamsHandler.java:383)
at io.micronaut.http.netty.stream.HttpStreamsHandler.handleReadHttpContent(HttpStreamsHandler.java:251)
at io.micronaut.http.netty.stream.HttpStreamsHandler.channelRead(HttpStreamsHandler.java:227)
at io.micronaut.http.netty.stream.HttpStreamsServerHandler.channelRead(HttpStreamsServerHandler.java:121)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93)
at io.netty.handler.codec.http.HttpServerKeepAliveHandler.channelRead(HttpServerKeepAliveHandler.java:64)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
at io.netty.handler.flow.FlowControlHandler.dequeue(FlowControlHandler.java:186)
at io.netty.handler.flow.FlowControlHandler.read(FlowControlHandler.java:129)
at io.netty.channel.AbstractChannelHandlerContext.invokeRead(AbstractChannelHandlerContext.java:685)
at io.netty.channel.AbstractChannelHandlerContext.read(AbstractChannelHandlerContext.java:670)
at io.micronaut.http.netty.reactive.HandlerPublisher.requestDemand(HandlerPublisher.java:163)
at io.micronaut.http.netty.stream.HttpStreamsHandler$1.requestDemand(HttpStreamsHandler.java:219)
at io.micronaut.http.netty.reactive.HandlerPublisher.receivedDemand(HandlerPublisher.java:325)
at io.micronaut.http.netty.reactive.HandlerPublisher.access$300(HandlerPublisher.java:65)
at io.micronaut.http.netty.reactive.HandlerPublisher$ChannelSubscription.lambda$request$0(HandlerPublisher.java:556)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:416)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:515)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:918)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:832)
Caused by: io.micronaut.context.exceptions.BeanContextException: Error loading bean [io.micronaut.configuration.hibernate.jpa.TransactionalSession$Intercepted]: org/hibernate/graph/RootGraph
at io.micronaut.context.DefaultBeanContext.lambda$findBeanCandidates$35(DefaultBeanContext.java:1692)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
Caused by: io.micronaut.context.exceptions.BeanContextException: Error loading bean [io.micronaut.configuration.hibernate.jpa.TransactionalSession$Intercepted]: org/hibernate/graph/RootGraph
at java.base/java.util.concurrent.ConcurrentLinkedQueue.forEachFrom(ConcurrentLinkedQueue.java:1037)
at java.base/java.util.concurrent.ConcurrentLinkedQueue$CLQSpliterator.forEachRemaining(ConcurrentLinkedQueue.java:894)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
at io.micronaut.context.DefaultBeanContext.findBeanCandidates(DefaultBeanContext.java:1702)
at io.micronaut.context.DefaultApplicationContext.findBeanCandidates(DefaultApplicationContext.java:225)
at io.micronaut.context.DefaultBeanContext.findConcreteCandidateNoCache(DefaultBeanContext.java:2479)
at io.micronaut.context.DefaultBeanContext.lambda$findConcreteCandidate$59(DefaultBeanContext.java:2468)
at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap.lambda$compute$0(ConcurrentLinkedHashMap.java:721)
at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708)
at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap.compute(ConcurrentLinkedHashMap.java:733)
at io.micronaut.core.util.clhm.ConcurrentLinkedHashMap.computeIfAbsent(ConcurrentLinkedHashMap.java:710)
at io.micronaut.context.DefaultBeanContext.findConcreteCandidate(DefaultBeanContext.java:2467)
at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:2253)
at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1233)
at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:1035)
at com.agrilink.agrilinkresource.service.user.$UserServiceDefinition.build(Unknown Source)
at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1888)
... 128 common frames omitted
Caused by: java.lang.NoClassDefFoundError: org/hibernate/graph/RootGraph
Caused by: java.lang.NoClassDefFoundError: org/hibernate/graph/RootGraph
at io.micronaut.configuration.hibernate.jpa.$TransactionalSession$InterceptedDefinition$$exec70.<init>(Unknown Source)
at io.micronaut.configuration.hibernate.jpa.$TransactionalSession$InterceptedDefinition.<init>(Unknown Source)
at io.micronaut.configuration.hibernate.jpa.$TransactionalSession$InterceptedDefinition.<init>(Unknown Source)
at io.micronaut.configuration.hibernate.jpa.$TransactionalSession$InterceptedDefinitionClass.load(Unknown Source)
at io.micronaut.context.AbstractBeanDefinitionReference.load(AbstractBeanDefinitionReference.java:62)
at io.micronaut.context.DefaultBeanContext.lambda$findBeanCandidates$35(DefaultBeanContext.java:1690)
... 151 common frames omitted
Caused by: java.lang.ClassNotFoundException: org.hibernate.graph.RootGraph
Caused by: java.lang.ClassNotFoundException: org.hibernate.graph.RootGraph
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 157 common frames omitted
00:07:25.432 [nioEventLoopGroup-1-15] DEBUG i.m.h.s.netty.RoutingInBoundHandler - Encoding emitted response object [Internal Server Error: Error instantiating bean of type [com.agrilink.agrilinkresource.service.user.UserService]
Message: Error loading bean [io.micronaut.configuration.hibernate.jpa.TransactionalSession$Intercepted]: org/hibernate/graph/RootGraph
Path Taken: new $UserControllerDefinition$Intercepted([UserService userService],BeanContext beanContext,Qualifier qualifier,Interceptor[] interceptors) --> new UserService(UserServiceDependencyBundle bundle,String apiKey,ProducerRepository producerRepository,[EntityManager entityManager])] using codec: io.micronaut.jackson.codec.JsonMediaTypeCodec@31f5b923
Hello, any news on this one? I am curious to know what was the cause. @graemerocher
Have a nice weekend, Davide
No idea to be honest, but almost certainly an issue with the application's classpath
Hello, here is a gist that I have created to provide useful info: https://gist.github.com/Deviad/5eb42dc85e7c5c0d1c3111aa0ce2db78
In case you really need it, I can provide access to my private repo (privately).
It's sufficient to run the application and via Postman send a request like this:
Expected Behaviour
It should save the entity successfully.
Environment Information