使用maven在kotlin中编写JSP – 错误实例化Servlet类,ClassNotFoundException

所以我一直在尝试JSP一段时间,我想用它和kotlin和maven,我有一些问题,

它抛出ClassNotFoundException,这里是我的文件:

  • web.xml中

     Archetype Created Web Application  Servlet com.erezbiox1.Servlet   Servlet /test   
  • 的pom.xml

      4.0.0 com.erezbiox1 KotlinJsp war 1.0 KotlinJsp http://maven.apache.org   junit junit 3.8.1 test   org.jetbrains.kotlin kotlin-stdlib 1.2.0   javax.servlet servlet-api 2.5    KotlinJsp   org.jetbrains.kotlin kotlin-maven-plugin 1.2.0   compile compile  compile        
  • Servlet.kt

     // Tried with, and without this: @file:JvmName("Servlet") package com.erezbiox1 import javax.servlet.http.HttpServlet import javax.servlet.http.HttpServletRequest import javax.servlet.http.HttpServletResponse class Servlet : HttpServlet(){ override fun doGet(req: HttpServletRequest, resp: HttpServletResponse) { resp.writer.println("

    IT WORKS!

    ") resp.writer.flush() } }

这里是项目结构: 项目结构

这里是错误的 :

 // Exception: javax.servlet.ServletException: Error instantiating servlet class com.erezbiox1.Servlet org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421) org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070) org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.lang.Thread.run(Thread.java:745) // Root Cause: java.lang.ClassNotFoundException: com.erezbiox1.Servlet org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421) org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070) org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.lang.Thread.run(Thread.java:745) 

这甚至有可能吗? jsp,kotlin和maven? 谢谢!

您项目中的类位于resources文件夹中。

这不是他们应该在哪里 – 这个文件夹只用于资源。

创建一个新文件夹,将其标记为源根目录,然后使用该文件夹。