2015-03-02 2 views
0

Я новичок в сервлетах и ​​т. Д. Я запускаю Eclipse Luna SR2 (для Java EE) и настроил мой проект на использование tomcat 8 в качестве сервера (в Linux Mint 17.1, если это помогает).tomcat - запрошенный ресурс не найден Ошибка

Я создал новый проект из файла -> Новый -> Динамический веб-проект.

При добавлении сервера tomcat 8 я не изменял никаких параметров по умолчанию, кроме указания корневого каталога tomcat.

Затем я импортировал файл servlet-api.jar (из каталога tomcat/lib).

У меня есть один файл класса в моем проекте, который не содержит ошибок. Поэтому, когда я запускаю tomcat из Eclipse, я получаю The requested resource is not available.. Я знаю, что это очень распространенная ошибка, и я был бы рад предоставить необходимую информацию.

Вот класс файл -

package ch1; 

import java.io.IOException; 
import java.io.PrintWriter; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

public class serv1 { 

public void doGet(HttpServletRequest request, 
     HttpServletResponse response) 
       throws IOException { 
    PrintWriter out = response.getWriter(); 
    java.util.Date today = new java.util.Date(); 
    out.println("<html>" + 
      "<body>" + 
      "<h1 align=center>HF\'s Chapter1 Servlet</h1>" + 
      "<br>" + today + "</body>" + "</html>"); 
} 
} 

Это структура каталогов моего проекта -

. 
|-- build 
| `-- classes 
|  `-- ch1 
|   `-- serv1.class 
|-- .classpath 
|-- .project 
|-- .settings 
| |-- .jsdtscope 
| |-- org.eclipse.jdt.core.prefs 
| |-- org.eclipse.wst.common.component 
| |-- org.eclipse.wst.common.project.facet.core.xml 
| |-- org.eclipse.wst.jsdt.ui.superType.container 
| `-- org.eclipse.wst.jsdt.ui.superType.name 
|-- src 
| `-- ch1 
|  `-- serv1.java 
`-- WebContent 
    |-- META-INF 
    | `-- MANIFEST.MF 
    `-- WEB-INF 
     `-- lib 

EDIT: Вот скриншот - enter image description here

Может кто-нибудь помочь мне где я ошибся?

+1

Дело в том, что нет web.xml файл в моем каталоге проекта. Я предположил, что Eclipse создаст его автоматически или мне не понадобится. Должен ли я добавить файл web.xml? – nsane

+1

Да, вам нужен web.xml –

ответ

2

Вам нужно поместить файл web.xml в каталог WEB-INF. Tomcat ничего не знаю о сервлете без отображения из файла 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 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> 

        <!-- Name the application --> 
        <display-name>ch1</display-name> 
        <description>An example application which is used to play with some of the features of Tomcat</description> 

        <!-- ========================================================== --> 
        <!-- Servlets --> 
        <!-- ========================================================== --> 

        <!-- Simple Servlet, provide a name, class, description and map to URL /servlet/SimpleServlet --> 
        <servlet> 
                <servlet-name>Simple</servlet-name> 
                <servlet-class>ch1.serv1</servlet-class> 
                <description>This is a simple Hello World servlet</description> 
        </servlet> 
        <servlet-mapping> 
                <servlet-name>Simple</servlet-name> 
                <url-pattern>/*</url-pattern> 
        </servlet-mapping> 

        <welcome-file-list> 
                <welcome-file>index.html</welcome-file> 
        </welcome-file-list> 

</web-app> 

Put в

<servlet-class>ch1.serv1</servlet-class> 

полного имени класса с именем пакета

Кроме того, необходимо расширить класс от HttpServlet не знает а затем переопределить метод #doGet().

Затем попытайтесь получить страницу по URL http://localhost:8080/ch1

+0

Спасибо за описание формата файла. – nsane

Смежные вопросы