Статус HTTP 404 - Сервлет не найден - PullRequest
1 голос
/ 09 марта 2019

У меня есть проект в Eclipse, и я пытаюсь вызвать сервлет из веб-браузера.На рисунке показана структура моего проекта.Хотя я установил url в аннотации, я все еще не могу найти ресурс.

Вот мой код:

package java.enablingKeyWordSearch;

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

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(asyncSupported = false, name = "HelloServlet", urlPatterns = {"/hello"})
public class TestServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html");
        PrintWriter out = resp.getWriter();
        out.write("<h2>Hello Servlet One </h2>");
        out.close();
    }
}

project hierarchy

Я попытался вызвать сервлет с помощью следующего: http://localhost:8080/MultiKeywordSearch/hello http://localhost:8080/MultiKeywordSearch/src/java/enablingKeyWordSearch/hello

... и так далее.Тем не менее, я получаю ошибку HTTP Status 404.

Это содержимое моего 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" id="WebApp_ID" version="3.1">
  <display-name>MultiKeywordSearch</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

Я использую Apache Tomcat v8.0, если это имеет значение.

ОБНОВЛЕНИЕ: отображение списка источников на новом скриншоте;удалено пространство имен Java updated src listing

РЕДАКТИРОВАТЬ 2.0 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" id="WebApp_ID" version="3.1">
  <display-name>MultiKeywordSearch</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
   <servlet>
        <servlet-name>HelloServlet</servlet-name>
        <servlet-class>enablingKeyWordSearch.TestServlet</servlet-class>
    </servlet>

<servlet-mapping>
    <servlet-name>HelloServlet</servlet-name>
    <url-pattern>/multiKeywordSearch</url-pattern>
</servlet-mapping>
</web-app>

Файл enablingKeyWordSearch.TestServlet.java:

package enablingKeyWordSearch;

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

import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

//@WebServlet(asyncSupported = false, name = "HelloServlet", urlPatterns = {"/hello"})
@WebServlet(name = "HelloServlet", urlPatterns = {"/multiKeywordSearch"})
@MultipartConfig
public class TestServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html");
        PrintWriter out = resp.getWriter();
        out.write("<h2>Hello Servlet One </h2>");
        out.close();
    }
}

К сожалению, по-прежнему получаю ошибку 404.

Ответы [ 2 ]

2 голосов
/ 09 марта 2019
@WebServlet("/multiKeywordSearch")

@MultipartConfig


and then try this.
http://localhost:8080/MultiKeyewordSearch/multiKeywordSearch
0 голосов
/ 09 марта 2019

Попробуйте обновить ваш web.xml

 <servlet>
    <servlet-name>helloServlet</servlet-name>
    <servlet-class>java.enablingKeyWordSearch.TestServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>helloServlet</servlet-name>
    <url-pattern>/hello</url-pattern>
</servlet-mapping>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...