Olá:
Estou estudando o Livro "Java Servlet: Programação" de Hunter e Crawford. Fiz o download dos <a>códigos de exemplo</a>. Descompactei os arquivos. Cada capítulo do livro possui um diretório equivalente com seus respectivos fontes. Além disso cada diretório também possui seu respectivo web.xml. Cada diretório chama-se chXX, onde XX vai de 02 até 20. Copiei estes diretórios para C:javaTomcat 4.1webapps.
O problema começa quando tento acesssar algum servlet. Por exemplo, compilei os *.java em ch03. Tento acessar o Servlet da classe InitCounter. No IE digito <i><a href="http://localhost:8080/ch03/InitCounter">http://localhost:8080/ch03/InitCounter</a></i>. Então o Tomcat retorna a mensagem de Status 404 ("The requested resource (/ch03/InitCounter) is not available."). No Web.xml aparece o seguinte:
<web-app>
<!-- From Example 3-3 -->
<servlet>
<servlet-name>
counter
</servlet-name>
<servlet-class>
InitCounter
</servlet-class>
<init-param>
<param-name>
initial
</param-name>
<param-value>
1000
</param-value>
<description>
The initial value for the counter <!-- optional -->
</description>
</init-param>
</servlet>
<!-- Outros Servlets -->
<web-app>
Baseando em "servlet-name" tento <i><a href="http://localhost:8080/ch03/counter">http://localhost:8080/ch03/counter</a></i>. Entretanto obtenho o mesmo aviso.
Quando vou ao <i>Tomcat Server Administration</i> e verifico Tomcat Server->Service (Tomcat-Standalone)->Host (localhost), não aparece nenhuma menção aos chXX entre os Contextos. A minha dúvida é: Não basta jogar meu diretório (ou meu atrquivo JAR/WAR) com a aplicação WEB para dentro de webapps, reinializar o Tomcat, e daí posso usá-la?
Acho que estou errando em algo muito simples, mas não consigo descobrir o quê.
Agradeceria qualquer ajuda.
Grato,
Rafael Ubiratam Clemente Afonso
Java 2 Certified Programmer
[ Esta mensagem foi editada por: rucafonso em 23-03-2003 19:41 ]
Dúvida Idiota na configuração do Tomcat
5 Respostas
rucafonso, para onde vc está compilando os seus Servlets? Eles devem ser compilados para webapps/chXX/WEB-INF/classes. Acho que é isso.
valeuz…
Jack:
Experimentei sua sugstão e não deu certo. Obrigado de qualquer jeito. :-[
Dae Rafael,
como o Jack disse, seus servlets devem estar na pasta WEB-INF/classes, de acordo com estes exemplos.
Só o que ele esqueceu de dizer, ou não notou, é que vc está tentando acessar os servlets na URL errada.
Tente:
http://localhost:8080/ch03/servlet/counter
Faltava o "servlet" na URL. E o nome que vc deve chamar é o mesmo que está entre as tags <servlet-name>
Franklin:
Fiz como me sugeriu. O diretório do webApp ficou assim:
%TOMCAT_HOME%/webapps/ch03/<em>.java
%TOMCAT_HOME%/webapps/ch03/web-inf/web.xml
%TOMCAT_HOME%/webapps/ch03/web-inf/classes/</em>.class
E daí tentei "<a href="http://localhost:8080/ch03/servlet/counter">http://localhost:8080/ch03/servlet/counter</a>". E não deu certo. :-[ .
Mandei um e-mail ao autor do livro e ele me sugeriu alterasse o seguinte trecho do arquivo %TOMCAT_HOME%/conf/web.xml:
<!-- The mapping for the default servlet -->
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
para
<!-- The mapping for the default servlet -->
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/servlet</url-pattern>
</servlet-mapping>
Mas não funcionou.
Já não sei mais o que fazer. Já tentei "<a href="http://localhost:8080/ch03/counter">http://localhost:8080/ch03/counter</a>", "<a href="http://localhost:8080/counter">http://localhost:8080/counter</a>", "<a href="http://localhost:8080/servlet/counter">http://localhost:8080/servlet/counter</a>", "<a href="http://localhost:8080/ch03/servlet/InitCounter">http://localhost:8080/ch03/servlet/InitCounter</a>", "<a href="http://localhost:8080/ch03/InitCounter">http://localhost:8080/ch03/InitCounter</a>", "<a href="http://localhost:8080/InitCounter">http://localhost:8080/InitCounter</a>".
Estou quase desistindo. :-[
Grato,
Rafael Ubiratam Clemente Afonso
Java 2 Certified Programmer
[ Esta mensagem foi editada por: rucafonso em 24-03-2003 23:31 ]
Eu tb gostaria de saber o q foi feito de errado, pois eu tb estou tentando resolver este prob´s a um bom tempo e ñ consigo.
Incluse já postei minhas dúvidas aq e, infelizmente, ninguém consegui me dizer o q está errado…

Espero q alguém possa nos ajuda a resolver este prob´s!!!