Отчет об ошибке JBoss: HTTP Status 404 - Сервлет недоступен - PullRequest
5 голосов
/ 24 ноября 2011

Я пытаюсь создать очень простой веб-проект под названием «web», используя MyEclipse и JBoss 5 в качестве сервера приложений.Я создал один пакет с именем "pages" и внутри него один сервлет с именем "UserInterface".Проблема в том, что при развертывании проекта и запуске сервера я всегда получаю сообщение об ошибке: HTTP Status 404 - Сервлет недоступен.

Это часть моего web.xml:

<servlet>
    <servlet-name>UserInterface</servlet-name>
    <servlet-class>pages.UserInterface</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>UserInterface</servlet-name>
    <url-pattern>/UserInterface</url-pattern>
  </servlet-mapping>

и я перехожу в браузере на: http://localhost:8080/web/UserInterface

Что я здесь не так делаю?

Спасибо

Ответы [ 3 ]

4 голосов
/ 24 ноября 2011

404 означает, что URL, к которому вы пытаетесь обратиться, не указывает на существующий ресурс на вашем сервере.Проверьте адрес еще раз, возможно, часть «web» (из http://localhost:8080/web/UserInterface) неверна, потому что, возможно, приложение не развернуто с таким именем.По умолчанию имя контекста приложения извлекается из имени файла «.war», например, если ваш файл «myApp.war», ваше приложение должно быть доступно по адресу http://localhost:8080/myApp

Также, если выфактически развертываете вашу войну в файле .ear, в котором этот файл ear будет содержать дескриптор aplpication application.xml, который может сопоставить файл вашего приложения с конкретным контекстом, независимо от того, что такое имя файла .war, что-то вроде:

<module>
    <web>
      <web-uri>myApp.war</web-uri>
      <context-root>theApp</context-root>
    </web>
  </module>

Наконец, если вы выполняете автоматическое развертывание из Eclipse с помощью коннектора JBoss Eclipse, иногда возникает ошибка, и на самом деле приложение не развертывается должным образом (даже если само приложение в порядке).Если это так, попробуйте вручную развернуть .war на сервере приложений и проверьте его таким образом.

2 голосов
/ 25 ноября 2011

Я до сих пор не знаю, в чем дело, но я создал еще один сервлет с именем user, и в web.xml я добавил / servlet перед классом и перешел к нему в браузере (http://localhost:8080/web/servlet/User), и это сработало.

<servlet>
    <servlet-name>User</servlet-name>
    <servlet-class>pages.User</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>User</servlet-name>
    <url-pattern>/servlet/User</url-pattern>
  </servlet-mapping>

Спасибо всем за помощь!

2 голосов
/ 24 ноября 2011

HTTP-статус 404. Сервлет недоступен.

Не удалось загрузить сервлет (если сервлет не был правильно объявлен в web.xml или неправильный URL-адрес,тогда вместо этого вы должны были увидеть «404 - Ресурс не найден»).Проще говоря, <servlet-class> неверен или файл конкретного класса отсутствует в /WEB-INF/classes.

...