ruslanys/telegraff

При добавления скрипта в режиме polling выскакивает ошибка связанная с прочтением скриптом java.lang.ClassNotFoundException: org.jetbrains.kotlin.scripting.compiler.plugin.repl.GenericReplCompiler

Closed this issue · 1 comments

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'handlersFactory' defined in class path resource [me/ruslanys/telegraff/autoconfigure/TelegraffServletWebConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [me.ruslanys.telegraff.core.dsl.DefaultHandlersFactory]: Factory method 'handlersFactory' threw exception; nested exception is java.lang.NoClassDefFoundError: org/jetbrains/kotlin/scripting/compiler/plugin/repl/GenericReplCompiler
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:655) ~[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:635) ~[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1336) ~[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1176) ~[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:556) ~[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516) ~[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324) ~[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:226) ~[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322) ~[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:897) ~[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:879) ~[spring-context-5.2.8.RELEASE.jar:5.2.8.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551) ~[spring-context-5.2.8.RELEASE.jar:5.2.8.RELEASE]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143) ~[spring-boot-2.3.3.RELEASE.jar:2.3.3.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:758) ~[spring-boot-2.3.3.RELEASE.jar:2.3.3.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:750) ~[spring-boot-2.3.3.RELEASE.jar:2.3.3.RELEASE]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) ~[spring-boot-2.3.3.RELEASE.jar:2.3.3.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) ~[spring-boot-2.3.3.RELEASE.jar:2.3.3.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1237) ~[spring-boot-2.3.3.RELEASE.jar:2.3.3.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) ~[spring-boot-2.3.3.RELEASE.jar:2.3.3.RELEASE]
at uz.blagovsem.telegrambot.TelegramBotApplicationKt.main(TelegramBotApplication.kt:13) ~[main/:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) ~[spring-boot-devtools-2.3.3.RELEASE.jar:2.3.3.RELEASE]
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [me.ruslanys.telegraff.core.dsl.DefaultHandlersFactory]: Factory method 'handlersFactory' threw exception; nested exception is java.lang.NoClassDefFoundError: org/jetbrains/kotlin/scripting/compiler/plugin/repl/GenericReplCompiler
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185) ~[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:650) ~[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]
... 25 common frames omitted
Caused by: java.lang.NoClassDefFoundError: org/jetbrains/kotlin/scripting/compiler/plugin/repl/GenericReplCompiler
at org.jetbrains.kotlin.script.jsr223.KotlinJsr223JvmLocalScriptEngine$replCompiler$2.invoke(KotlinJsr223JvmLocalScriptEngine.kt:47) ~[kotlin-script-util-1.3.72.jar:1.3.72-release-468 (1.3.72)]
at org.jetbrains.kotlin.script.jsr223.KotlinJsr223JvmLocalScriptEngine$replCompiler$2.invoke(KotlinJsr223JvmLocalScriptEngine.kt:38) ~[kotlin-script-util-1.3.72.jar:1.3.72-release-468 (1.3.72)]
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74) ~[kotlin-stdlib-1.3.72.jar:1.3.72-release-468 (1.3.72)]
at org.jetbrains.kotlin.script.jsr223.KotlinJsr223JvmLocalScriptEngine.getReplCompiler(KotlinJsr223JvmLocalScriptEngine.kt) ~[kotlin-script-util-1.3.72.jar:1.3.72-release-468 (1.3.72)]
at org.jetbrains.kotlin.script.jsr223.KotlinJsr223JvmLocalScriptEngine$localEvaluator$2.invoke(KotlinJsr223JvmLocalScriptEngine.kt:53) ~[kotlin-script-util-1.3.72.jar:1.3.72-release-468 (1.3.72)]
at org.jetbrains.kotlin.script.jsr223.KotlinJsr223JvmLocalScriptEngine$localEvaluator$2.invoke(KotlinJsr223JvmLocalScriptEngine.kt:38) ~[kotlin-script-util-1.3.72.jar:1.3.72-release-468 (1.3.72)]
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74) ~[kotlin-stdlib-1.3.72.jar:1.3.72-release-468 (1.3.72)]
at org.jetbrains.kotlin.script.jsr223.KotlinJsr223JvmLocalScriptEngine.getLocalEvaluator(KotlinJsr223JvmLocalScriptEngine.kt) ~[kotlin-script-util-1.3.72.jar:1.3.72-release-468 (1.3.72)]
at org.jetbrains.kotlin.script.jsr223.KotlinJsr223JvmLocalScriptEngine.getReplEvaluator(KotlinJsr223JvmLocalScriptEngine.kt:55) ~[kotlin-script-util-1.3.72.jar:1.3.72-release-468 (1.3.72)]
at org.jetbrains.kotlin.script.jsr223.KotlinJsr223JvmLocalScriptEngine.createState(KotlinJsr223JvmLocalScriptEngine.kt:59) ~[kotlin-script-util-1.3.72.jar:1.3.72-release-468 (1.3.72)]
at org.jetbrains.kotlin.cli.common.repl.KotlinJsr223JvmScriptEngineBase.createState$default(KotlinJsr223JvmScriptEngineBase.kt:46) ~[kotlin-compiler-embeddable-1.3.72.jar:1.3.72-release-468 (1.3.72)]
at org.jetbrains.kotlin.cli.common.repl.KotlinJsr223JvmScriptEngineBase.getCurrentState(KotlinJsr223JvmScriptEngineBase.kt:53) ~[kotlin-compiler-embeddable-1.3.72.jar:1.3.72-release-468 (1.3.72)]
at org.jetbrains.kotlin.cli.common.repl.KotlinJsr223JvmScriptEngineBase.nextCodeLine(KotlinJsr223JvmScriptEngineBase.kt:44) ~[kotlin-compiler-embeddable-1.3.72.jar:1.3.72-release-468 (1.3.72)]
at org.jetbrains.kotlin.cli.common.repl.KotlinJsr223JvmScriptEngineBase.compileAndEval(KotlinJsr223JvmScriptEngineBase.kt:61) ~[kotlin-compiler-embeddable-1.3.72.jar:1.3.72-release-468 (1.3.72)]
at org.jetbrains.kotlin.cli.common.repl.KotlinJsr223JvmScriptEngineBase.eval(KotlinJsr223JvmScriptEngineBase.kt:33) ~[kotlin-compiler-embeddable-1.3.72.jar:1.3.72-release-468 (1.3.72)]
at java.scripting/javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:249) ~[java.scripting:na]
at me.ruslanys.telegraff.core.dsl.DefaultHandlersFactory.compile(DefaultHandlersFactory.kt:48) ~[telegraff-core-1.0.0.jar:1.0.0]
at me.ruslanys.telegraff.core.dsl.DefaultHandlersFactory.(DefaultHandlersFactory.kt:33) ~[telegraff-core-1.0.0.jar:1.0.0]
at me.ruslanys.telegraff.autoconfigure.TelegraffServletWebConfiguration.handlersFactory(TelegraffServletWebConfiguration.kt:81) ~[telegraff-autoconfigure-1.0.0.jar:1.0.0]
at me.ruslanys.telegraff.autoconfigure.TelegraffServletWebConfiguration$$EnhancerBySpringCGLIB$$2564e74f.CGLIB$handlersFactory$3() ~[telegraff-autoconfigure-1.0.0.jar:1.0.0]
at me.ruslanys.telegraff.autoconfigure.TelegraffServletWebConfiguration$$EnhancerBySpringCGLIB$$2564e74f$$FastClassBySpringCGLIB$$57ddea35.invoke() ~[telegraff-autoconfigure-1.0.0.jar:1.0.0]
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244) ~[spring-core-5.2.8.RELEASE.jar:5.2.8.RELEASE]
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:331) ~[spring-context-5.2.8.RELEASE.jar:5.2.8.RELEASE]
at me.ruslanys.telegraff.autoconfigure.TelegraffServletWebConfiguration$$EnhancerBySpringCGLIB$$2564e74f.handlersFactory() ~[telegraff-autoconfigure-1.0.0.jar:1.0.0]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ~[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]
... 26 common frames omitted
Caused by: java.lang.ClassNotFoundException: org.jetbrains.kotlin.scripting.compiler.plugin.repl.GenericReplCompiler
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) ~[na:na]
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[na:na]
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ~[na:na]
... 55 common frames omitted

Process finished with exit code 0

my build.gradle.kts

import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import java.net.URI

plugins {
id("org.springframework.boot") version "2.3.3.RELEASE"
id("io.spring.dependency-management") version "1.0.10.RELEASE"
kotlin("jvm") version "1.3.72"
kotlin("plugin.spring") version "1.3.72"

}

group = "uz.blagovsem"
version = "0.0.1-SNAPSHOT"
java.sourceCompatibility = JavaVersion.VERSION_11

configurations {
compileOnly {
extendsFrom(configurations.annotationProcessor.get())
}
}

repositories {
mavenCentral()
maven {
url = uri("https://dl.bintray.com/ruslanys/maven")
}
}

extra["springBootAdminVersion"] = "2.3.0"

dependencies {
implementation("org.springframework.boot:spring-boot-starter-actuator")
implementation("org.springframework.boot:spring-boot-starter-web")
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
implementation("de.codecentric:spring-boot-admin-starter-client")
implementation("de.codecentric:spring-boot-admin-starter-server")
implementation("org.jetbrains.kotlin:kotlin-reflect")
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
implementation("me.ruslanys.telegraff:telegraff-starter:1.0.0")
developmentOnly("org.springframework.boot:spring-boot-devtools")
runtimeOnly("com.h2database:h2")
annotationProcessor("org.springframework.boot:spring-boot-configuration-processor")
testImplementation("org.springframework.boot:spring-boot-starter-test") {
exclude(group = "org.junit.vintage", module = "junit-vintage-engine")
}
}

dependencyManagement {
imports {
mavenBom("de.codecentric:spring-boot-admin-dependencies:${property("springBootAdminVersion")}")
}
}

tasks.withType {
useJUnitPlatform()
}

tasks.withType {
kotlinOptions {
freeCompilerArgs = listOf("-Xjsr305=strict")
jvmTarget = "11"
}
}

Починил, добавив либы:
implementation("org.jetbrains.kotlin:kotlin-script-runtime:${kotlinVersion}")
implementation("org.jetbrains.kotlin:kotlin-script-util:${kotlinVersion}")
implementation("org.jetbrains.kotlin:kotlin-compiler-embeddable:${kotlinVersion}")
implementation("org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:${kotlinVersion}")
implementation("org.jetbrains.kotlin:kotlin-scripting-jvm-host-embeddable:${kotlinVersion}")
implementation("org.jetbrains.kotlin:kotlin-scripting-jvm-host:${kotlinVersion}")
implementation("org.jetbrains.kotlin:kotlin-scripting-jvm:${kotlinVersion}")
implementation("org.jetbrains.kotlin:kotlin-scripting-jsr223-embeddable:${kotlinVersion}")
implementation("org.jetbrains.kotlin:kotlin-scripting-jsr223:${kotlinVersion}")