Meu Tomcat não roda servlets

2 respostas
C

Pessoal, estou apanhando pra fazer o Tomcat rodar servlets :cry:

segue os passos que fiz

em meu server.xml criei um Context para acessar meus arquivos na pasta c:projetos este

...
<Context className="org.apache.catalina.core.StandardContext" crossContext="false" reloadable="false" mapperClass="org.apache.catalina.core.StandardContextMapper" useNaming="false" debug="0" swallowOutput="false" privileged="false" displayName="Teste" wrapperClass="org.apache.catalina.core.StandardWrapper" docBase="c:projetos	este" cookies="true" path="/teste" cachingAllowed="true" charsetMapperClass="org.apache.catalina.util.CharsetMapper">
</Context>
...

Em c:projetos este esta o teste.htm

<html>
<body>
<p> Teste </p>
</body>
<html>

Em c:projetos esteWEB-INF esta meu 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>Hello</servlet-name>
    <servlet-class>HelloWorld</servlet-class>
  </servlet>
</web-app>

Em c:projetos esteWEB-INFclasses estão os arquivos HelloWorld.java e HelloWorld.class

meu HelloWorld.java :

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HelloWorld extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws IOException, ServletException
    {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<body>");
        out.println("<head>");
        out.println("<title>Hello World!</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<h1>Hello World!</h1>");
        out.println("</body>");
        out.println("</html>");
    }
}

se chamo: http://localhost:8080/teste/teste.htm, a paginazimha teste.htm é exibida com sucesso,

mas nenhuma das opçoes abaixo funciona

http://localhost:8080/teste/servlet/Hello
http://localhost:8080/teste/servlet/HelloWorld

http://localhost:8080/teste/Hello
http://localhost:8080/teste/HelloWorld

todas dão o erro abaixo:

HTTP Status 404 - /teste/HelloWorld
--------------------------------------------------------------------------------
type Status report
message /teste/HelloWorld
description The requested resource (/teste/HelloWorld) is not available.
--------------------------------------------------------------------------------
Apache Tomcat/4.1.27

Alguem sabe me dizer onde estou "comendo bola" ????? :? :( :cry:

2 Respostas

dgouvea

No web.xml vc tem que adicionar para cada servlet a tag servlet mapping:

<web-app> 
  <servlet> 
    <servlet-name>HelloWorld</servlet-name> 
    <servlet-class>HelloWorld</servlet-class> 
  </servlet> 
  <servlet> 
    <servlet-name>Servlet1</servlet-name> 
    <servlet-class>Servlet</servlet-class> 
  </servlet> 

  <servlet-mapping>
    <servlet-name>HelloWorld</servlet-name>
    <url-pattern>/HelloWorld</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>Servlet1</servlet-name>
    <url-pattern>/Servlet1</url-pattern>
  </servlet-mapping>
</web-app>

e no servlet name procure sempre colocar o mesmo nome da classe.

acho que com isso vc consegue rodar os servlets.

C

Valeu, é isso mesmo … :stuck_out_tongue:

é q no livro que estou lendo não fala sobre isso :oops:

Criado 18 de novembro de 2003
Ultima resposta 18 de nov. de 2003
Respostas 2
Participantes 2