gpt4 book ai didi

Kotlin 类 servlet 引发 NoClassDefFoundError

转载 作者:行者123 更新时间:2023-12-02 12:26:00 24 4
gpt4 key购买 nike

在我的 IntelliJ IDE 中的示例 Java servlet 项目中,我在 Kotlin 中创建了这个类:

@WebServlet(name = "TwitterAPIServlet", description = "This is used to test the servlet api", urlPatterns = ["/twitterAPIServlet"])
class TwitterAPIServlet : HttpServlet() {
@Throws(IOException::class)
override fun doGet(req: HttpServletRequest, resp: HttpServletResponse) {

// Print answer
val out = resp.writer
out.println("Request Done : </br>")
}
}

当我试图用我的 .jsp 页面调用它时,出现了这个错误:

2020-05-10 15:30:34.218:WARN:oejs.HttpChannel:qtp60559178-27: /twitterAPIServlet
java.lang.NoClassDefFoundError: kotlin/jvm/internal/Intrinsics
at main.java.co.rezo.api.internal.v1.TwitterAPIServlet.doGet(TwitterAPIServlet.kt)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)

当我在 Java 中尝试相同的代码时,它正在运行:

@WebServlet(
name = "TwitterAPIServlet",
description = "This is used to test the servlet api",
urlPatterns = "/twitterAPIServlet")
public class TwitterAPIServlet extends HttpServlet {

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
PrintWriter out = resp.getWriter();
out.println("Request Done : </br>");
}
}

我该怎么做才能让我的 Kotlin 代码正常工作?

最佳答案

问题很可能是 Kotlin 的标准库未包含在生成的 WAR 中(或者如果您运行分解的应用程序,则该库不在类路径中)。确保将其包含在您的构建中。

Gradle 的说明可以在官方示例存储库中找到:kotlin-examples .

Maven 类似:https://kotlinlang.org/docs/reference/using-maven.html .

如果是纯 IDEA(尽管建议使用上述构建工具之一),请检查项目设置:

enter image description here

您应该会看到 Kotlin 的标准库包含在工件中:

enter image description here

关于Kotlin 类 servlet 引发 NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61713001/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com