Kotlin类servlet引发NoClassDefFoundError
在IntelliJ IDE中的一个示例Java servlet项目中,我在Kotlin中创建了这个类:Kotlin类servlet引发NoClassDefFoundError,kotlin,intellij-idea,servlets,Kotlin,Intellij Idea,Servlets,在IntelliJ IDE中的一个示例Java servlet项目中,我在Kotlin中创建了这个类: @WebServlet(name = "TwitterAPIServlet", description = "This is used to test the servlet api", urlPatterns = ["/twitterAPIServlet"]) class TwitterAPIServlet : HttpServlet() { @Throws(IOException:
@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>")
}
}
当我在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>");
}
}
@WebServlet(
name=“TwitterAPIServlet”,
description=“用于测试servlet api”,
urlPatterns=“/twitterAPIServlet”)
公共类TwitterAPIServlet扩展了HttpServlet{
@凌驾
受保护的void doGet(HttpServletRequest-req、HttpServletResponse-resp)引发IOException{
PrintWriter out=resp.getWriter();
out.println(“请求完成:”;
}
}
如何使我的Kotlin代码正常工作?最可能的问题是,生成的WAR中不包括Kotlin的标准库(或者,如果运行分解的应用程序,它不在类路径上)。确保在构建中包含它 Gradle的说明可以在官方示例库中找到: Maven与此类似: 如果是纯IDEA(尽管建议使用上述构建工具之一),请检查项目设置: 您应该看到Kotlin的stdlib包含在工件中:
@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>");
}
}