Eu uso a ultima versao, a 4.1+, e funciona da mesma maneira. O que deve estar acontecendo, e foi algum dos varios problemas que tive quando estava comecando a mexer com ele, era na hora de mapear os servlets e ate mesmo na configuracao da minha aplicacao.
Basicamente ( e de qq maneira eh mais ou menos o que foi dito no tutorial ) eh assim:
- Abra o server.xml e coloque la um contexto para a aplicacao. Levando em consideracao que o diretorio base dela eh “/var/tomcat4/webapps/MinhaAplicacao”, fazer assim:
<Context path="/MeuTeste" docBase="/var/tomcat4/webapps/MinhaAplicacao" reloadable="true"/>
Note que essa entrada deve necessariamente estar denro de uma tag <Service>, geralmente a “Tomcat-Standalone”.
Depois disso, se o diretorio nao extistir, crie ele. Entao crie um WEB-INF dentro dele e dentro do WEB-INF crie um outro diretorio chamado “classes”. Dentro do “classes” coloque o .class do Servlet.
Entao agora precisa criar o web.xml dentro do diretorio WEB-INF. Levando em consideracao que o nome do .class eh ServletExemplo.class , e que queremos acessar usando o nome “MeuServlet”, o web.xml ficaria 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>
<servlet>
<servlet-name>MeuServlet</servlet-name>
<servlet-class>ServletExemplo</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MeuServlet</servlet-name>
<url-pattern>/MeuServlet</url-pattern>
</servlet-mapping>
</web-app>
Depois eh so restartar o tomcat e ( levando em consideracao que ele vai startar no localhost, porta 8080 ), acessar:
http://localhost:8080/MeuTeste/MeuServlet
Isso funciona perfeito em todo tomcat que testei.
Rafael