(RESOLVIDO!)HTTP Status 404 - o servlet não funciona

13 respostas
H

Olá pessoal,
sou novato e preciso da ajuda de vocês… :slight_smile:

eu escrevi o Servlet TestingServlet.java no bloco de notas, compilei ele, gerando o TestingServlet.class .
O código é esse:

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

public class TestingServlet extends HttpServlet{

     public void doGet(HttpServletRequest request, HttpServletResponse response)
     throws ServletException, IOException {

     PrintWriter out = response.getWriter();

out.println("<HTML>");
out.println("<HEAD>");
out.println("<TITLE>Servlet Testing </TITLE>");
out.println("</HEAD>");
out.println("<BODY>");
out.println("Welcome to the Servlet Testing Centre");
out.println("</BODY>");
out.println("</HTML>");

}
}

Criei a distribuição descritiva por meio do arquivo web.xml.
O código de web.xml é esse:

<?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>

Os diretórios aqui estão organizados da seguinte maneira:

-Disco local( C: )
-Apache Software Foudation
-Tomcat 6.0
bin
+conf
lib
logs
temp
-webapps
+docs
+examles
+host-maneger
+maneger
-myApp
images
[color=green]-WEB-INF[/color]
[color=red]classes[/color]
+ROOT
+work

Coloquei o Arquivo TestingServlet.class dentro de [color=red]classes[/color]…
Coloquei a distribuição descritiva web.xml dentro de [color=green]-WEB-INF[/color]

Quando eu escrevo http://localhost:8080/myApp/servlet/Testing no browser…
aparece a mensagem:

HTTP Status 404 - /myApp/servlet/Testing

--------------------------------------------------------------------------------

type Status report

message /myApp/servlet/Testing

description The requested resource (/myApp/servlet/Testing) is not available.


--------------------------------------------------------------------------------

Apache Tomcat/6.0.24

Me ajudem… :frowning: por favor…
me mostrem o que falta ou o que eu fiz de errado…

obrigado!

13 Respostas

W

Veja se isso aqui te ajuda :

http://www.jwdutra.com.br/index.php?option=com_content&view=article&id=35%3Atomcat-2&catid=26%3Ajee&Itemid=42&showall=1

Mas antes de começar a testar sua aplicação web, tenta acessar : http://localhost:8080 , pra se certificar de que o tomcat está ok.

thiagocg

Vc mapeou seu servlet no web.xml??

algo como:

<servlet> <description></description> <display-name>TestingServlet</display-name> <servlet-name>TestingServlet</servlet-name> <servlet-class>seupacote.TestingServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>TestingServlet</servlet-name> <url-pattern>/TestingServlet</url-pattern> </servlet-mapping>

LPJava

veja o que vc precisa fazer: http://camilolopes.wordpress.com/2008/07/07/comunicando-servlet-jsp/

H

weberdls,

http://localhost:8080/ funciona perfeitamente…

o que não funciona é quando eu digito o caminho:
http://localhost:8080/myApp/servlet/Testing

ME AJUDEM… :cry:

H

thiagocg

fiz o que tu me aconselhou…

<?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>
      <display-name>Testing</display-name>
      <servlet-name>Testing</servlet-name>
      <servlet-class>TestingServlet</servlet-class>
 </servlet>

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

</web-app>

valeu pela observação

mas o problema continua

me ajudem por favor…não quero desistir…!
:frowning: :frowning: :cry: :cry:

leorbarbosa

Herberth,

Erro 404 (SC_NOT_FOUND) = Not found

O nome da sua classe não é “TestingServlet” ?

tente:

<welcome-file-list>
        <welcome-file>TestingServlet</welcome-file>
    </welcome-file-list>

Se o tomcat está ok, me parece mais uma questão de sintaxe (coisas do gênero).

att,

LPJava

para nao perder a fé, sobe essa app no tomcat ai. E tenta rodar ela. Aqui ta normal.
E assim, vai se acostumando cara, pq isso sempre será assim, hoje eh com sevlet, amanha eh com jsf, struts, spring e por ai vai, sempre que estamos aprendendo algo, parece que nada dar certo no inicio, a nossa anciedade de ver rodando eh tao grande que erramos nos detalhes.

flw!

H

LPJava,

consegui,cara! :smiley:

fiz o download que me passou

segui o exemplo e deu tudo certo

valeu! :smiley: :smiley: :smiley: :smiley: :smiley:

A

Boa noite, estou com um problema parecido.

Se eu nao mapeio a servlet da o seguinte erro: HTTP Status 404 - /ServletControllerUsuario

soh que quando eu mapeio ela da outro erro:

Grave: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/WebProject_Invetario_09-01-2014]]
	at java.util.concurrent.FutureTask$Sync.innerGet(Unknown Source)
	at java.util.concurrent.FutureTask.get(Unknown Source)
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123)
	at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:800)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/WebProject_Invetario_09-01-2014]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
	... 7 more
Caused by: java.lang.IllegalArgumentException: The servlets named [ServletControllerUsuario] and [Controller.ServletControllerUsuario] are both mapped to the url-pattern [/ServletControllerUsuario] which is not permitted
	at org.apache.catalina.deploy.WebXml.addServletMapping(WebXml.java:335)
	at org.apache.catalina.startup.ContextConfig.processAnnotationWebServlet(ContextConfig.java:2457)
	at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2139)
	at org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2100)
	at org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2093)
	at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1300)
	at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:878)
	at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:369)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5269)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	... 7 more

Jan 10, 2014 11:28:34 PM org.apache.catalina.core.ContainerBase startInternal
Grave: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
	at java.util.concurrent.FutureTask$Sync.innerGet(Unknown Source)
	at java.util.concurrent.FutureTask.get(Unknown Source)
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123)
	at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:302)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:732)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:684)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:456)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131)
	at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:800)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	... 7 more

Jan 10, 2014 11:28:34 PM org.apache.catalina.startup.Catalina start
Grave: Catalina.start: 
org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:684)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:456)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
	at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:732)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	... 7 more
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
	at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	... 9 more
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131)
	at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:302)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	... 11 more

Jan 10, 2014 11:28:34 PM org.apache.catalina.startup.Catalina start
Informações: Server startup in 3811 ms

e nao inicializa o tomcat....

Quando eu criei o projeto eu usei Dynamic web module version: 3.0

se eu uso o 2.5 nao da esse erro sabem pq?

S

Cara,3.0 se mapeia com anotação na classe e 2.5 se mapeia no web.xml

A

Boa tarde…

Slow17 voce teria um exemplo pra passar?

nao faço a minima ideia de como se mapiar fazendo anotação na classe

asousaj

Servlet 3.0 aceita tanto com anotação quanto pelo web.xml. Mas não usando os 2 ao mesmo tempo.

Olhando os erros, o problema é que mapeou tanto no xml quanto na classe usando anotação.

Retire um ou outro e teste novamente.

### Usando anotação:

i
mport java.io.IOException;
 
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
@WebServlet("/processForm")//Aqui usou anotação para a url /processForm
public class MyServlet extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws IOException {
        response.getWriter().println("Hello");
    }
}
A

Ae galera muito obrigado pela ajuda… consegui aqui… \o/

Criado 12 de março de 2010
Ultima resposta 11 de jan. de 2014
Respostas 13
Participantes 8