Iniciante Problema com servlet e Tomcat

6 respostas
J

Caros,

  • Estou estudando o livro do Deitel e tendo dificuldades para executar um servlet básico. Instalei o Tomcat 4.1.18 no Win2000 e o j2sdk 1.3.1, e o Tomcat aparentemente está startando ok.

  • Essa é a estrutura do meus arquivos

C:Tomcat 4.1.18
|___webapps
|___myApp
|___WEB-INF -----> web.xml
|___classes -----> TestingServlet.class e .java

  • Este é meu servlet TestingServlet.java:
import javax.servlet.<em>;

import javax.servlet.http.</em>;

import <a href="http://java.io">java.io</a>.<em>;

import java.util.</em>;

public class TestingServlet extends HttpServlet {

public void doGet(HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println("&lt;HTML&gt;");
out.println("&lt;HEAD&gt;");
out.println("&lt;TITLE&gt;Servlet Testing&lt;/TITLE&gt;");
out.println("&lt;/HEAD&gt;");
out.println("<BODY>");
out.println("Welcome to the Servlet Testing Center");
out.println("</BODY>");
out.println("&lt;/HTML&gt;");

}
}

  • E este é o web.xml

<?xml version=“1.0” encoding=“ISO-8859-1”?>

<!DOCTYPE web-app
PUBLIC “-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN”
http://java.sun.com/dtd/web-app_2_3.dtd”>

<web-app>

<servlet>

<servlet-name>Testing</servlet-name>

<servlet-class>TestingServlet</servlet-class>

</servlet>

</web-app>

HTTP Status 404 - /myApp/servlet/TestingServlet
type Status report
message /myApp/servlet/TestingServlet
description The requested resource (/myApp/servlet/TestingServlet) is not available.
Apache Tomcat/4.1.18

Por favor me ajudem a entender pqe não funciona.

Muito grato

6 Respostas

Ironlynx

Hey,servlet-name éh TestingServlet tb!E existe essa pasta servlet entre
MyApp e TestingServlet?

Jair_Rillo_Junior

“Ironlynx”:
Hey,servlet-name éh TestingServlet tb!E existe essa pasta servlet entre
MyApp e TestingServlet?

a tag <servlet-name> não é necessariamente igual ao nome do servlet e não precisa estar dentro do pacote /servlet ao menos que seja mapeada com esse nome.

Agora José Carlos, no seu arquivo web.xml faltou a tag para mapear o servlet.
Depois do </servlet> coloque as seguintes tags

&lt;servlet-mapping&gt;
		&lt;servlet-name&gt;Testing&lt;/servlet-name&gt;
		&lt;url-pattern&gt;/servlet/TestingServlet&lt;/url-pattern&gt;
	&lt;/servlet-mapping&gt;
J

O livro sugere que o servlet-name seja modificado justamente para chamar o servlet por um nome diferente (Testing) com o que foi criado (TestingServlet).

Não existe a pasta servlet. Essa é justamente uma dúvida: se ao chamar …/servlet/… o Tomcat “saberia” que estamos chamando um servlet, mesmo não havendo esse subdir.

Veja que essa é exatamente a expressão do livro, não sei se errada (pg 12.

J

Junior,

Acrescentei o <servlet-mapping> mas não resolveu. Continua a msg erro. A notação do caminho que vc usou está considerando a rota de diretórios que citei?

Jair_Rillo_Junior

“Jose Carlos”:
Junior,

Acrescentei o <servlet-mapping> mas não resolveu. Continua a msg erro. A notação do caminho que vc usou está considerando a rota de diretórios que citei?

o caminho com o /servlet pode ser usado, pois ele foi utilizado dentro do url-pattern.

Serve uma dica :?: :idea: :idea:

Faça o tutorial aqui do GUJ e veja se funciona, ae depois voçê volta a fazer o do livro do Deitel
http://www.guj.com.br/user.article.get.chain?page=1&article.id=9

J

Junior e Ironlynx: RESOLVIDO!

Realmente no livro há um erro, talvez de esquecimento. Eles foram minimalistas logo no primeiro código para facilitar mas acabaram criando um problema.

Acrescentar o <servlet-mapping> realmente resolveu mas com um detalhe: para que a URL do livro seja verdadeira, observar que o
deve incluir /servlet/… .

Eles redigiram desta forma mas sem que o servlet proposto indicase isso!

<servlet-mapping>
<servlet-name>TestingServlet</servlet-name>
/servlet/TestingServlet
</servlet-mapping>

PS: o exemplo do GUJ tb funcionou.

Grato pela ajuda e o conhecimento a mais.

  • Jose Carlos
Criado 27 de abril de 2004
Ultima resposta 27 de abr. de 2004
Respostas 6
Participantes 3