Eclipse上的Java Servlet:示例化servlet类时出错|ClassNotFoundException

ehxuflar  于 2023-06-22  发布在  Eclipse
关注(0)|答案(4)|浏览(185)

我知道这个问题已经被问了很多,但我尝试了一切,它仍然不为我工作,希望有人能帮助。
我试图运行一个servlet页面服务器与eclipse,不断显示此错误:

下面是我的源代码:
我写了一个简单的servlet页面,只是为了看看它在服务器上运行:

package main.java.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class StationsServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public StationsServlet() {

    }

    @Override
    public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html");
        PrintWriter writer = resp.getWriter();
        writer.println("<html>");
        writer.println("<body>");
        writer.println("Hello");
        writer.println("</body></html>");
        writer.flush();
    }

    @Override
    public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    }
}

我的web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
    version="3.1">
    <display-name>weather-files-war</display-name>
    <welcome-file-list>
        <welcome-file>home.jsp</welcome-file>
    </welcome-file-list>
    <servlet>
        <servlet-name>stationsServlet</servlet-name>
        <servlet-class>main.java.servlet.StationsServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>stationsServlet</servlet-name>
        <url-pattern>/stations</url-pattern>
    </servlet-mapping>
</web-app>

最后,我的文件夹/模块结构:

  • PS:我创建了一个homepage.jsp,它在服务器上工作正常,问题是当命中servlet类时。
lvjbypge

lvjbypge1#

首先检查一下你的www.example.com附近的感叹号有什么问题StationsServlet.java
另外,尝试在servlet类中的public class StationsServlet extends HttpServlet {之前添加注解@WebServlet(name = "StationsServlet ", value = "/stations")。它需要帮助。

nxowjjhe

nxowjjhe2#

我创建了一个新的项目和一个新的工作区,只需将模块和类复制到新的工作区,它就工作了。
我猜这与eclipse项目的结构和配置有关。

vc6uscn9

vc6uscn93#

希望这些信息对寻找这个常见问题答案的程序员有用。这个答案是基于这个问题的。
请确保您的servlet类位于以下文件夹下**(您的项目名称)/src/main/java**
在servlet中添加注解**@WebServlet(name=“stationsServlet”,value =“/stations”)**
您的.jsp(homepage.jsp)表单应该是,
请按照以下步骤操作。

uelo1irk

uelo1irk4#

我在我的M1 MacBook Pro上遇到了这个问题,但可能会在任何M1/M2设备上复制。问题是我使用的SQLite库版本。我使用的是v3.41.2.1。请记住,如果需要,请相应地修改构建路径。

相关问题