Затмение, кот, ошибка 404 - PullRequest
       22

Затмение, кот, ошибка 404

6 голосов
/ 30 августа 2011

Я изучаю сервлеты и следую этому учебнику (я следую шаг за шагом, но я назвал проект "SampleServlet" вместо "de.vogella.wtp.filecounter").При запуске сервера (шаг 5.4) я получаю сообщение об ошибке 404:

HTTP Status 404 - /SampleServlet/servlet/de.vogella.wtp.filecounter.servlets.FileCounter
type Status report
message /SampleServlet/servlet/de.vogella.wtp.filecounter.servlets.FileCounter
description The requested resource (/SampleServlet/servlet/de.vogella.wtp.filecounter.servlets.FileCounter) is not available.

С чего начать отладку?При запуске сервера в консоли было несколько «INFO» и одно предупреждение:

29.08.2011 21:03:44 org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:SampleServlet' did not find a matching property.

Нужно ли менять какие-либо настройки?

Ответы [ 3 ]

8 голосов
/ 30 августа 2011

В руководстве предлагается вызвать его с помощью http://localhost:8080/de.vogella.wtp.filecounter/FileCounter.. Имя проекта по умолчанию имеет имя контекста de.vogella.wtp.filecounter, которое вы изменили на SampleServlet, поэтому вам необходимо вызвать сервлет с помощью http://localhost:8080/SampleServlet/FileCounter.

См. Также:


Что касается предупреждения SetPropertiesRule, просто проигнорируйте его, это нормально.Eclipse просто добавляет дополнительный атрибут к элементу <Context> Tomcat, чтобы иметь возможность связывать развернутое веб-приложение с конкретным проектом.Tomcat просто дергается, потому что не распознает его как один из предопределенных атрибутов <Context>.Тем не менее, он пытается быть полезным в том случае, если конечный пользователь действительно сделал опечатку и так далее.Просто игнорируй это.Вы не увидите его при экспорте веб-приложения и его развертывании на реальном производственном сервере.

5 голосов
/ 30 августа 2011

Хорошо, в соответствии с вашим web.xml кажется, что вам не хватает определения сервлета и отображения сервлета.Я не знаю, почему это не генерируется вашим идеей.Это должно выглядеть примерно так:

<servlet>
    <servlet-name>SampleServlet</servlet-name>
    <servlet-class>your.package.SampleServlet</servlet-class> <!-- The full qualified package path to your Servlet class -->        
</servlet>

<servlet-mapping> 
    <servlet-name>SampleServlet</servlet-name>
    <url-pattern>/mysample</url-pattern>
</servlet-mapping>

В элементе servlet-mapping вы просто сопоставляете любой URL с вашим сервлетом, определенным выше.Поэтому, если вы сейчас позвоните http://yourserver:8080/projectname/mysample, будет вызван сервлет your.package.SampleServlet.

Надеюсь, это поможет.

0 голосов
/ 02 января 2014

Добавьте FileCounter как один из файлов приветствия в web.xml, он выглядит следующим образом.

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>de.vogella.wtp.filecounter</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>FirstJSP.jsp</welcome-file>  -->
    <welcome-file>FileCounter</welcome-file>
  </welcome-file-list>
  <servlet>
    <description></description>
    <display-name>FileCounter</display-name>
    <servlet-name>FileCounter</servlet-name>
    <servlet-class>de.vogella.wtp.filecounter.servlets.FileCounter</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>FileCounter</servlet-name>
    <url-pattern>/FileCounter</url-pattern>
  </servlet-mapping>
</web-app>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...