将Qute TypeSafe模板与Kotlin一起使用时发生java.lang.UnsatifiedLink错误
在尝试与Kotlin一起使用时(根据下面的代码将静态类转换为对象),我在运行时遇到了一个不满意的LinkError 有关守则:将Qute TypeSafe模板与Kotlin一起使用时发生java.lang.UnsatifiedLink错误,java,kotlin,quarkus,quarkus-qute,Java,Kotlin,Quarkus,Quarkus Qute,在尝试与Kotlin一起使用时(根据下面的代码将静态类转换为对象),我在运行时遇到了一个不满意的LinkError 有关守则: @Path(“/subscriber”) @生成(MediaType.TEXT\u HTML) @使用(MediaType.TEXT\uHTML) 类订阅资源{ @检查模板 对象模板{ external fun new():TemplateInstance } @得到 fun get():TemplateInstance{ 返回模板。新建() } } 模板位于reso
@Path(“/subscriber”)
@生成(MediaType.TEXT\u HTML)
@使用(MediaType.TEXT\uHTML)
类订阅资源{
@检查模板
对象模板{
external fun new():TemplateInstance
}
@得到
fun get():TemplateInstance{
返回模板。新建()
}
}
模板位于resources/templates/SubscriberResource/new.html
中
项目构建得很好,但是当我尝试打开视图时,我得到了下面给出的异常
我还尝试将该对象设置为伴奏
对象,但没有任何帮助
知道少了什么吗
java.lang.UnsatisfiedLinkError:'io.quarkus.qte.TemplateInstance com.app.subscriber.SubscriberResource$Templates.new()'
位于com.app.subscriber.SubscriberResource$Templates.new(本机方法)
在com.app.subscriber.SubscriberResource.get上(SubscriberResource.kt:23)
在com.app.subscriber.SubscriberResource_Subclass.get$$superaccessor1上(SubscriberResource_Subclass.zig:189)
在com.app.SubscriberResource\u子类$$function$$6.apply上(SubscriberResource\u子类$$function$$6.zig:29)
在io.quarkus.arc.impl.AroundInvokeInvocationContext.Procedue(AroundInvokeInvocationContext.java:54)
在io.quarkus.arc.runtime.devconsole.InvocationInterceptor.procedue(InvocationInterceptor.java:63)
在io.quarkus.arc.runtime.devconsole.InvocationInterceptor.monitor(InvocationInterceptor.java:49)
在io.quarkus.arc.runtime.devconsole.InvocationInterceptor\u Bean.intercept(InvocationInterceptor\u Bean.zig:521)
在io.quarkus.arc.impl.InterceptorInvocation.invoke(InterceptorInvocation.java:41)
在io.quarkus.arc.impl.AroundInvokeInvocationContext.perform(AroundInvokeInvocationContext.java:41)
位于io.quarkus.arc.impl.InvocationContexts.performAroundInvoke(InvocationContexts.java:32)
在com.app.subscriber.SubscriberResource_Subclass.get上(SubscriberResource_Subclass.zig:147)
位于java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
位于java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
位于java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
位于java.base/java.lang.reflect.Method.invoke(Method.java:566)
位于org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:170)
位于org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:130)
位于org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget(ResourceMethodInvoker.java:643)
位于org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTargetAfterFilter(ResourceMethodInvoker.java:507)
位于org.jboss.resteasy.core.ResourceMethodInvoker.lambda$invokeOnTarget$2(ResourceMethodInvoker.java:457)
位于org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
位于org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:459)
位于org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:419)
位于org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:393)
位于org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:68)
位于org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:492)
位于org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:261)
位于org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:161)
位于org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
位于org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:164)
位于org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:247)
在io.quarkus.resteasy.runtime.standalone.RequestDispatcher.service(RequestDispatcher.java:73)上
在io.quarkus.resteasy.runtime.standalone.VertxRequestHandler.dispatch(VertxRequestHandler.java:138)上
在io.quarkus.resteasy.runtime.standalone.VertxRequestHandler.access$000(VertxRequestHandler.java:41)
在io.quarkus.resteasy.runtime.standalone.VertxRequestHandler$1.run(VertxRequestHandler.java:93)
在io.quarkus.runtime.CleanableExecutor$CleaningRunnable.run(CleanableExecutor.java:231)
位于java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
位于java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
位于org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2415)
位于org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1452)
位于org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:29)
位于org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:29)
位于java.base/java.lang.Thread.run(Thread.java:834)
位于org.jboss.threads.JBossThread.run(JBossThread.java:501)
导致:org.jboss.resteasy.spi.UnhandledException:java.lang.UnsatisfiedLinkError:'io.quarkus.qute.TemplateInstance com.app.SubscriberResource$Templates.new()'
位于org.jboss.resteasy.core.ExceptionHandler.handleApplicationException(ExceptionHandler.java:106)
位于org.jboss.resteasy.core.ExceptionHandler.handleException(ExceptionHandler.java:372)
位于org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:218)
位于org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:519)
... 还有18个
最终找到了一个解决方案,将
@JvmStatic
添加到外部对象函数可以解决这个问题:
@CheckedTemplate
对象模板{
@JvmStatic
external fun new():TemplateInstance
}