Я не могу развернуть основной HTML-файл в Apache Tomcat - PullRequest
4 голосов
/ 23 июля 2010

Я делаю небольшой сайт в качестве моего первого проекта. Я завершил использование Java-сервлетов и JSP для сценариев на стороне сервера. Я изучаю это от Сервлетов HeadFirst О'Рейли и JSP. Я решил использовать Apache-Tomcat в качестве своего веб-сервера и контейнера. Я скачал это. У меня даже jdk 1.6 update 21. Я разархивировал apache в C: Он работает успешно, так как я получаю домашнюю страницу Tomcat по умолчанию, когда я набираю http://localhost:8080 в своем браузере.

В главе 3 есть небольшой проект под названием пиво. Поэтому я попытался сделать это. Я создал каталог под названием beer под webapps C:\apache-tomcat-7.0.0\webapps\beer. Внутри него, чтобы просто проверить основы, я создал HTML-файл с именем form.html. Но когда я пытаюсь получить к нему доступ через браузер http://localhost:8080/beer/form.html, я получаю следующую ошибку:

HTTP-статус 404 - /beer/form.html

тип Отчет о состоянии

сообщение /beer/form.html

описание Запрашиваемый ресурс (/beer/form.html) недоступен.

Apache Tomcat / 7.0.0

Я даже пытался использовать Tomcat 6, но безрезультатно.


Спасибо, что ответили ... На самом деле я сомневаюсь, что здесь я пытаюсь получить доступ к .html-файлу, который не является сервлетом, поэтому для него даже требуется описание развертывания ????

ну, есть только 1 сервлет, который я планировал сделать (изначально) .... тот, который упоминается в форме (action = "....") в html-файле, который я сделал .... поэтому я подумал о проверке основного файла HTML, прежде чем развернуть сервлет .... кстати ... если мне нужно включить файл HTML также в DD, то что я должен написать вместо ServletName в коде XML, который вы дали ? вот содержимое моего web.xml (я изменил его, как вы сказали ... но не знаю, что писать в имени сервлета)

<?xml version="1.0" encoding="utf-8"?>
 <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
    <servlet>
        <servlet-name>html page</servlet-name>
        <servlet-class>form</servlet-class>
    </servlet>
    <servlet-mapping>
      <servlet-name>html page</servlet-name>
      <url-pattern>/beer/form.html</url-pattern>
   </servlet-mapping>


    <servlet>
        <servlet-name>Ch3 Beer</servlet-name>
        <servlet-class>com.example.web.BeerSelect</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Ch3 Beer</servlet-name>
        <url-pattern>/SelectBeer.do</url-pattern>
    </servlet-mapping>
</web-app>

Ответы [ 2 ]

2 голосов
/ 23 июля 2010

Проблема почти наверняка находится в вашей декларации сервлета.

В папке WEB-INF вашего веб-приложения есть файл с именем web.xml (/webapps/beer/WEB-INF). Посмотрите, можете ли вы найти его и опубликовать его содержание, пожалуйста.

Этот файл объявляет, как сервлеты будут отображаться для запроса URL. Таким образом, если есть сервлет, сопоставленный с расширением URL /*:

   <servlet-mapping>
      <servlet-name>ServletName</servlet-name>
      <url-pattern>/*</url-pattern>
   </servlet-mapping>

вы не сможете получить прямой доступ к файлам (т. Е. /beer/form.html не получит form.html), поскольку сервлет ServletName будет перехватывать любые запросы по URL, начинающемуся с http://localhost:8080/beer/.


Кстати, если вам интересно: код состояния HTTP 404 означает, что файл, на который указывает URL, не был найден.

См. http://en.wikipedia.org/wiki/List_of_HTTP_status_codes#4xx_Client_Error для получения дополнительной информации о кодах состояния HTTP.

0 голосов
/ 23 июля 2010

Это должно работать просто отлично.Возможно, опечатка в URL или имени файла.Это также чувствительно к регистру./Beer - это не то же самое, что /beer.Дважды проверьте URL.Кроме того, у вас нет нескольких экземпляров Tomcat, запущенных или извлеченных из загруженного почтового индекса?Возможно, вы разместили новую страницу не на той странице и / или не ту страницу.Попробуйте выключить экземпляр Tomcat, который, по вашему мнению, работает, и перезагрузить домашнюю страницу в веб-браузере.Если домашняя страница не исчезает, значит, она другая.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...