使用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
文件夹中。
这不是他们应该在哪里 – 这个文件夹只用于资源。
创建一个新文件夹,将其标记为源根目录,然后使用该文件夹。