Configuração do Tomcat

Olá, bom dia.

Aparentemente tudo está configurado corretamente; as pastas, os .xml, as configurações e tudo mais.
Encontro a minha pasta ‘testes’ sem problemas e executo UM servlet nela contido sem erros.
Masm ao tentar executar os outros dois servlets nela contidos, recebo o erro 500.

Já tentei até duplicar a classe que funciona, só trocando o nome e, mesmo depois de adicioná-la ao web.xml, o mesmo erro retorna.

Meu web.xml está assim:

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

    <!-- Indica ao Tomcat as Servlets da nossa aplicacao --> 
    
    <servlet> 
        <servlet-name>HelloWorld</servlet-name> 
        <servlet-class>HelloWorld</servlet-class> 
    </servlet>  
    <servlet> 
        <servlet-name>SessionID</servlet-name> 
        <servlet-class>SessionID</servlet-class> 
    </servlet>
    <servlet> 
        <servlet-name>requestParam</servlet-name> 
        <servlet-class>requestParam</servlet-class> 
    </servlet>
    
    <servlet-mapping> 
        <servlet-name>HelloWorld</servlet-name> 
        <url-pattern>/HelloWorld</url-pattern> 
    </servlet-mapping>
    <servlet-mapping> 
        <servlet-name>SessionID</servlet-name> 
        <url-pattern>/SessionID</url-pattern> 
    </servlet-mapping>
    <servlet-mapping> 
        <servlet-name>requestParam</servlet-name> 
        <url-pattern>/requestParam</url-pattern> 
    </servlet-mapping>
    
   <session-config> 
        <session-timeout>30</session-timeout> <!-- 30 minutes --> 
    </session-config> 

</web-app>

O que pode estar acontecendo?

ps.: aqui está o erro

HTTP Status 500 - 

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

type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

javax.servlet.ServletException: Error allocating a servlet instance
	at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:672)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2416)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
	at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:601)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392)
	at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
	at java.lang.Thread.run(Thread.java:536)


root cause 

java.lang.NoClassDefFoundError: HelloWorld (wrong name: testes/HelloWorld)
	at java.lang.ClassLoader.defineClass0(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:502)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
	at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1680)
	at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:968)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1410)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1289)
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:885)
	at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:668)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2416)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
	at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:601)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392)
	at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
	at java.lang.Thread.run(Thread.java:536)

O problema eh esse:

[quote]java.lang.NoClassDefFoundError: HelloWorld (wrong name: testes/HelloWorld)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:502)[/quote]

E estah aqui:

<servlet> <servlet-name>HelloWorld</servlet-name> <servlet-class>HelloWorld</servlet-class> </servlet>

Trocando para:

<servlet> <servlet-name>HelloWorld</servlet-name> <servlet-class>testes.HelloWorld</servlet-class> </servlet>

Deve resolver :wink:

Devo fazer isso com as três?

Sendo assim, porque o SessionID funciona e os outros não??

Bem, vou testar, valeu!

Provavelmente SessionID esta sendo declarada na package default (ou seja, nao tem declaracao de package), certo?

Bem, não funcionou e o erro mudou para 503 (servlet não encontrado) :cry:

E não, não tenho uma declaração de package. Isso resolveria o meu problema?

Nao sei se resolveria, mas eh uma otima pratica, de qualquer maneira… :smiley:

Ok … bem … você poderia, por favor, dar uma breve explicação de como declarar isso?

[code]package br.com.guj.servlets;

…[/code]

:wink:

do´h … hehe … obrigado :oops:

Ok, coloquei um ‘package testes;’ em todos.

Então ele não encontrou nenhum servlet (erro 404).

Portanto fui até o web.xml da pasta testes e coloquei da maneira que você colocou acima … então … deu erro 500 em todos. :frowning:

O que pode estar errado agora? Dei uma busca no google por esse erro … não fui muito feliz.

Ajuda?

lipe implorando

Consegui cv, o problema era a falta de declaração de package mesmo :slight_smile: muitíssimo obrigado :smiley:

10 reau :wink:

:mrgreen: