http статус 404: требуемый ресурс не найден - PullRequest
1 голос
/ 26 апреля 2011

Я создал веб-приложение, используя eclipse и tomcat7. У меня был следующий код в html-файле и в классе сервлетов java. в HTML-файл:

<form action="UserAccessServlet" method = "get">

в классе сервлетов у меня было

@WebServlet ("/UserAccessServlet")

тогда я только что сделал некоторые небольшие изменения (новые операторы println), но это не показывает никакого эффекта, я изменил имя сервера со следующей частью кода

HTML-файл: <form action="SQA_Servlet" method = "get"> класс Java: @WebServlet ("/SQA_Servlet")

но, похоже, перезагрузка не произошла, и я получил следующую ошибку:

HTTP Status 404 - /SQA_Learning/SQA_Servlet

--------------------------------------------------------------------------------

type Status report

message /SQA_Learning/SQA_Servlet

description The requested resource (/SQA_Learning/SQA_Servlet) is not available.

Я попытался очистить модуль, обновить, закрыть заново открыть проект с тем же результатом

Я заменил @WebServlet ("/SQA_Servlet") на @WebServlet(urlPatterns={"/SQA_Servlet"})

и до сих пор не имеют никакого эффекта .. любое предложение.

Ответы [ 2 ]

0 голосов
/ 27 августа 2012

Я не уверен, когда и в каких условиях вы получаете эту ошибку. Но если вы развертываете на tomcat, может произойти следующее:

Предполагается, что ваше веб-приложение называется "my.webapp", в результате чего получается my.webapp.war. при условии, что у вас есть сервлет "servlet1", который выполняет action1 => @WebServlet(urlPatterns = "/action1") (обратите внимание на косую черту перед action1)

Предполагается, что вы вызываете это действие с помощью HTML-формы: <form action="/action1" method="GET"> это может не сработать из-за косой черты перед action1

Когда он появится, tomcat перенаправит на localhost: 8080 / action1? .. в то время как он должен перенаправить на localhost: 8080 / my.project / action1? ..

Решение измените HTML, чтобы форма выглядела следующим образом: <form action="action1" method="GET">, не меняйте @WebServlet(urlPatterns = "/action1")

Надеюсь, это кому-нибудь поможет!

0 голосов
/ 28 апреля 2011

Атрибут WebServlet name не может начинаться с /.Вместо этого,

@WebServlet("UserAccessServlet")

или оставьте это поле пустым (если вы хотите, чтобы WebServlet использовал имя вашего класса сервлетов. Пример:

@WebServlet
public class UserAccessServlet extends HttpServlet {


//Do stuff
}

Я бы рекомендуем объявить аннотации WebServlet полностью, как в в этом примере .

...