kotlin-script-templating icon indicating copy to clipboard operation
kotlin-script-templating copied to clipboard

Exception when running self-hosted war/jar

Open alex-t0 opened this issue 4 years ago • 0 comments

Hi!

I'm trying to run app as spring boot self-hosted jar, and this error occurs:

Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalStateException: Script engine with name 'kotlin' failed to initialize] with root cause

java.io.IOException: The filename, directory name, or volume label syntax is incorrect
        at java.base/java.io.WinNTFileSystem.canonicalize0(Native Method) ~[na:na]
        at java.base/java.io.WinNTFileSystem.canonicalize(WinNTFileSystem.java:416) ~[na:na]
        at java.base/java.io.File.getCanonicalPath(File.java:618) ~[na:na]
        at java.base/java.io.File.getCanonicalFile(File.java:643) ~[na:na]
        at kotlin.script.experimental.jvm.impl.PathUtilKt.toFileOrNull(pathUtil.kt:97) ~[kotlin-scripting-jvm-1.3.50.jar!/:1.3.50-release-112 (1.3.50)]
        at kotlin.script.experimental.jvm.impl.PathUtilKt.toContainingJarOrNull(pathUtil.kt:105) ~[kotlin-scripting-jvm-1.3.50.jar!/:1.3.50-release-112 (1.3.50)]
        at kotlin.script.experimental.jvm.util.JvmClasspathUtilKt.toValidClasspathFileOrNull(jvmClasspathUtil.kt:94) ~[kotlin-scripting-jvm-1.3.50.jar!/:1.3.50-release-112 (1.3.50)]
        at kotlin.script.experimental.jvm.util.JvmClasspathUtilKt$classpathFromClassloader$1$4.invoke(jvmClasspathUtil.kt:81) ~[kotlin-scripting-jvm-1.3.50.jar!/:1.3.50-release-112 (1.3.50)]
        at kotlin.script.experimental.jvm.util.JvmClasspathUtilKt$classpathFromClassloader$1$4.invoke(jvmClasspathUtil.kt) ~[kotlin-scripting-jvm-1.3.50.jar!/:1.3.50-release-112 (1.3.50)]
        at kotlin.sequences.TransformingSequence$iterator$1.next(Sequences.kt:172) ~[kotlin-stdlib-1.3.50.jar!/:1.3.50-release-112 (1.3.50)]
        at kotlin.sequences.FilteringSequence$iterator$1.calcNext(Sequences.kt:132) ~[kotlin-stdlib-1.3.50.jar!/:1.3.50-release-112 (1.3.50)]
        at kotlin.sequences.FilteringSequence$iterator$1.hasNext(Sequences.kt:156) ~[kotlin-stdlib-1.3.50.jar!/:1.3.50-release-112 (1.3.50)]
        at kotlin.sequences.FlatteningSequence$iterator$1.ensureItemIterator(Sequences.kt:278) ~[kotlin-stdlib-1.3.50.jar!/:1.3.50-release-112 (1.3.50)]
        at kotlin.sequences.FlatteningSequence$iterator$1.hasNext(Sequences.kt:265) ~[kotlin-stdlib-1.3.50.jar!/:1.3.50-release-112 (1.3.50)]
        at kotlin.sequences.FlatteningSequence$iterator$1.ensureItemIterator(Sequences.kt:278) ~[kotlin-stdlib-1.3.50.jar!/:1.3.50-release-112 (1.3.50)]
        at kotlin.sequences.FlatteningSequence$iterator$1.hasNext(Sequences.kt:265) ~[kotlin-stdlib-1.3.50.jar!/:1.3.50-release-112 (1.3.50)]
        at kotlin.sequences.FilteringSequence$iterator$1.calcNext(Sequences.kt:131) ~[kotlin-stdlib-1.3.50.jar!/:1.3.50-release-112 (1.3.50)]
        at kotlin.sequences.FilteringSequence$iterator$1.hasNext(Sequences.kt:156) ~[kotlin-stdlib-1.3.50.jar!/:1.3.50-release-112 (1.3.50)]
        at kotlin.sequences.SequencesKt___SequencesKt.toCollection(_Sequences.kt:702) ~[kotlin-stdlib-1.3.50.jar!/:1.3.50-release-112 (1.3.50)]
        at kotlin.sequences.SequencesKt___SequencesKt.toMutableList(_Sequences.kt:732) ~[kotlin-stdlib-1.3.50.jar!/:1.3.50-release-112 (1.3.50)]
        at kotlin.sequences.SequencesKt___SequencesKt.toList(_Sequences.kt:723) ~[kotlin-stdlib-1.3.50.jar!/:1.3.50-release-112 (1.3.50)]
        at kotlin.script.experimental.jvm.util.JvmClasspathUtilKt.classpathFromClassloader(jvmClasspathUtil.kt:90) ~[kotlin-scripting-jvm-1.3.50.jar!/:1.3.50-release-112 (1.3.50)]
        at kotlin.script.experimental.jvm.util.JvmClasspathUtilKt.scriptCompilationClasspathFromContextOrNull(jvmClasspathUtil.kt:265) ~[kotlin-scripting-jvm-1.3.50.jar!/:1.3.50-release-112 (1.3.50)]
        at kotlin.script.experimental.jvm.util.JvmClasspathUtilKt.scriptCompilationClasspathFromContext(jvmClasspathUtil.kt:288) ~[kotlin-scripting-jvm-1.3.50.jar!/:1.3.50-release-112 (1.3.50)]
        at kotlin.script.experimental.jsr223.KotlinJsr223DefaultScriptEngineFactory.dependenciesFromCurrentContext(KotlinJsr223DefaultScriptEngineFactory.kt:35) ~[kotlin-scripting-jsr223-embeddable-1.3.50.jar!/:1.3.50-release-112 (1.3.50)]
        at kotlin.script.experimental.jsr223.KotlinJsr223DefaultScriptEngineFactory$getScriptEngine$1$1.invoke(KotlinJsr223DefaultScriptEngineFactory.kt:52) ~[kotlin-scripting-jsr223-embeddable-1.3.50.jar!/:1.3.50-release-112 (1.3.50)]
        at kotlin.script.experimental.jsr223.KotlinJsr223DefaultScriptEngineFactory$getScriptEngine$1$1.invoke(KotlinJsr223DefaultScriptEngineFactory.kt:24) ~[kotlin-scripting-jsr223-embeddable-1.3.50.jar!/:1.3.50-release-112 (1.3.50)]
        at kotlin.script.experimental.util.PropertiesCollection$Builder.invoke(propertiesCollection.kt:255) ~[kotlin-scripting-common-1.3.50.jar!/:1.3.50-release-112 (1.3.50)]
        at kotlin.script.experimental.jsr223.KotlinJsr223DefaultScriptEngineFactory$getScriptEngine$1.invoke(KotlinJsr223DefaultScriptEngineFactory.kt:51) ~[kotlin-scripting-jsr223-embeddable-1.3.50.jar!/:1.3.50-release-112 (1.3.50)]
        at kotlin.script.experimental.jsr223.KotlinJsr223DefaultScriptEngineFactory$getScriptEngine$1.invoke(KotlinJsr223DefaultScriptEngineFactory.kt:24) ~[kotlin-scripting-jsr223-embeddable-1.3.50.jar!/:1.3.50-release-112 (1.3.50)]
        at kotlin.script.experimental.api.ScriptCompilationConfiguration.<init>(scriptCompilation.kt:22) ~[kotlin-scripting-common-1.3.50.jar!/:1.3.50-release-112 (1.3.50)]
        at kotlin.script.experimental.api.ScriptCompilationConfiguration.<init>(scriptCompilation.kt:27) ~[kotlin-scripting-common-1.3.50.jar!/:1.3.50-release-112 (1.3.50)]
        at kotlin.script.experimental.jsr223.KotlinJsr223DefaultScriptEngineFactory.getScriptEngine(KotlinJsr223DefaultScriptEngineFactory.kt:50) ~[kotlin-scripting-jsr223-embeddable-1.3.50.jar!/:1.3.50-release-112 (1.3.50)]
        at org.springframework.scripting.support.StandardScriptUtils.retrieveEngineByName(StandardScriptUtils.java:59) ~[spring-context-5.2.0.RC1.jar!/:5.2.0.RC1]
        at org.springframework.web.servlet.view.script.ScriptTemplateView.createEngineFromName(ScriptTemplateView.java:318) ~[spring-webmvc-5.2.0.RC1.jar!/:5.2.0.RC1]
        at org.springframework.web.servlet.view.script.ScriptTemplateView.getEngine(ScriptTemplateView.java:295) ~[spring-webmvc-5.2.0.RC1.jar!/:5.2.0.RC1]
        at org.springframework.web.servlet.view.script.ScriptTemplateView.renderMergedOutputModel(ScriptTemplateView.java:399) ~[spring-webmvc-5.2.0.RC1.jar!/:5.2.0.RC1]
        at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:316) ~[spring-webmvc-5.2.0.RC1.jar!/:5.2.0.RC1]
        at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1371) ~[spring-webmvc-5.2.0.RC1.jar!/:5.2.0.RC1]
        at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1117) ~[spring-webmvc-5.2.0.RC1.jar!/:5.2.0.RC1]
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1056) ~[spring-webmvc-5.2.0.RC1.jar!/:5.2.0.RC1]
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942) ~[spring-webmvc-5.2.0.RC1.jar!/:5.2.0.RC1]
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005) ~[spring-webmvc-5.2.0.RC1.jar!/:5.2.0.RC1]
        at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:897) ~[spring-webmvc-5.2.0.RC1.jar!/:5.2.0.RC1]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:634) ~[tomcat-embed-core-9.0.22.jar!/:9.0.22]
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882) ~[spring-webmvc-5.2.0.RC1.jar!/:5.2.0.RC1]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) ~[tomcat-embed-core-9.0.22.jar!/:9.0.22]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ~[tomcat-embed-core-9.0.22.jar!/:9.0.22]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.22.jar!/:9.0.22]
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.22.jar!/:9.0.22]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.22.jar!/:9.0.22]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.22.jar!/:9.0.22]
        at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) ~[spring-web-5.2.0.RC1.jar!/:5.2.0.RC1]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118) ~[spring-web-5.2.0.RC1.jar!/:5.2.0.RC1]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.22.jar!/:9.0.22]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.22.jar!/:9.0.22]
        at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92) ~[spring-web-5.2.0.RC1.jar!/:5.2.0.RC1]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118) ~[spring-web-5.2.0.RC1.jar!/:5.2.0.RC1]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.22.jar!/:9.0.22]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.22.jar!/:9.0.22]
        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200) ~[spring-web-5.2.0.RC1.jar!/:5.2.0.RC1]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118) ~[spring-web-5.2.0.RC1.jar!/:5.2.0.RC1]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.22.jar!/:9.0.22]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.22.jar!/:9.0.22]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) ~[tomcat-embed-core-9.0.22.jar!/:9.0.22]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) ~[tomcat-embed-core-9.0.22.jar!/:9.0.22]
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490) ~[tomcat-embed-core-9.0.22.jar!/:9.0.22]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) ~[tomcat-embed-core-9.0.22.jar!/:9.0.22]
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.22.jar!/:9.0.22]
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[tomcat-embed-core-9.0.22.jar!/:9.0.22]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) ~[tomcat-embed-core-9.0.22.jar!/:9.0.22]
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408) ~[tomcat-embed-core-9.0.22.jar!/:9.0.22]
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) ~[tomcat-embed-core-9.0.22.jar!/:9.0.22]
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:853) ~[tomcat-embed-core-9.0.22.jar!/:9.0.22]
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1587) ~[tomcat-embed-core-9.0.22.jar!/:9.0.22]
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.22.jar!/:9.0.22]
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.22.jar!/:9.0.22]
        at java.base/java.lang.Thread.run(Thread.java:835) ~[na:na]

Honestly, I have same error in my spring boot application: https://github.com/alex-t0/spring-boot-kotlin, and I ask question several days ago on stackoverflow: https://stackoverflow.com/questions/57727150/kotlin-script-engine-with-spring-boot-self-running-war. In my app error occurs if you uncomment this line: ScriptEngineFactoryManager().GetScriptEngine("kotlin"); in KotlinView.Render. And ScriptEngineManager(classLoader).getEngineByName("kotlin") expression returns null when launched as self-running jar. In IDEA all works fine.

May be you can help me with workaround for this error?

alex-t0 avatar Sep 02 '19 08:09 alex-t0