Duvida Rodar MeuPrimeiroServlet

6 respostas
cristianonasciment
código q foi compilado:
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class MeuPrimeiroServlet extends javax.servlet.http.HttpServlet {
    
    public void destroy () {
        super.destroy();
    }
    public void init () throws ServletException {
        super.init();
    }
    protected void service (HttpServletRequest request, HttpServletResponse response) 
        throws ServletException, IOException {
        
        response.setContentType("text/html;charset=ISO-8859-1");
        String html = "<html>" +
                "<head><title> Trabalhando com Servlet </title></head>" +
                "</head>" + 
                "<body>" +
                "<h1> Meu Primeiro Servlet </h1>" + 
                "</body>" +
                "</html>";
        PrintWriter out = response.getWriter();
        out.print(html);
        out.close();
        
    }

}
o arquivo MeuPrimeiroServlet.class está no seguinte diretorio: C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\webapps\Site\WEB-INF\classes\meupacote
<?xml version="1.0" encoding="UTF-8"?>
<!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 id="WebApp-ID">
<description>
Descritor do contexto de desenvolvimento
</description>
<display-name>
Meu Primeiro Servlet
</display-name>
<servlet>
<servlet-name> MeuPrimeiroServlet </servlet-name>
<servlet-class> meupacote.MeuPrimeiroServlet </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name> MeuPrimeiroServlet </servlet-name>
<url-pattern>/MeuPrimeiroServlet</url-pattern>
</servlet-mapping>
</web-app>
e o web.xml esta no: C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\webapps\Site\WEB-INF

startei o Tomcat.
Na hora de rodar usando:
http://localhost:8080/MeuPrimeiroServlet ele dá erro:

HTTP STATUS 404
description: The requested resource (/MeuPrimeiroServlet) is not available

alguem pode me dar uma luz.

6 Respostas

jmoreira

Você esqueceu de informar o nome da aplicação na URL: Faz assim:
http://localhost:8080/site/MeuPrimeiroServlet

cristianonasciment

obrigado pela resposta.
mais agora tá dando outro erro:

HTTP ERROR - 500
description: The server encountered an internal error () that prevented it from fulfilling this request.

javax.servlet.ServletException: Error allocating a servlet instance

org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)

org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)

org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)

org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)

java.lang.Thread.run(Unknown Source)

root cause

java.lang.NoClassDefFoundError: meupacote/MeuPrimeiroServlet (wrong name: MeuPrimeiroServlet)

java.lang.ClassLoader.defineClass1(Native Method)

java.lang.ClassLoader.defineClass(Unknown Source)

java.security.SecureClassLoader.defineClass(Unknown Source)

org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1819)

org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:872)

org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1327)

org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1206)

org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)

org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)

org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)

org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)

java.lang.Thread.run(Unknown Source)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.16 logs.
Apache Tomcat/6.0.16

o começo é sempre mais dificil, impressionante, heheh

jmoreira

Cara, desenvolver para Web, exige um conhecimento mínimo de tecnologias e aplicações para começar a fazer pelo menos um Hello World.
Assim, sugiro fortemente que você faça o download desta apostila e dê uma lida inicial. Ela lhe ajudará a dar seus primeiros passos rumo ao desenvolvimento para web. Ok? Do contrário, será um erro atrás do outro, ai, a curva de aprendizado será muito grande, e você desanimará fácil, fácil.

K_F

Não sei se isto irá resolver seu problema, mas tente retirar os espaços no servlet-name.

Abraço!

LPJava

veja se nao esqueceu de configurar algo no seu servlet… veja o exemplo em anexo… e testa ele na sua aplicacao ai!!

W

O código correto seria o código abaixo. No seu código está faltando a primeira linha.

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

public class MeuPrimeiroServlet extends javax.servlet.http.HttpServlet {  

    public void destroy () {  
        super.destroy();  
    }  
    public void init () throws ServletException {  
        super.init();  
    }  
    protected void service (HttpServletRequest request, HttpServletResponse response)   
        throws ServletException, IOException {  
             
           response.setContentType("text/html;charset=ISO-8859-1");  
           String html = "<html>" +  
                   "<head><title> Trabalhando com Servlet </title></head>" +  
                   "</head>" +   
                   "<body>" +  
                   "<h1> Meu Primeiro Servlet </h1>" +   
                   "</body>" +  
                   "</html>";  
           PrintWriter out = response.getWriter();  
           out.print(html);  
           out.close();  
             
        }  
     
}
Criado 8 de abril de 2008
Ultima resposta 2 de dez. de 2008
Respostas 6
Participantes 5