Dúvida Idiota na configuração do Tomcat

5 respostas
R
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 ]

5 Respostas

J

rucafonso, para onde vc está compilando os seus Servlets? Eles devem ser compilados para webapps/chXX/WEB-INF/classes. Acho que é isso.



valeuz…

R

Jack:



Experimentei sua sugstão e não deu certo. Obrigado de qualquer jeito. :-[

F

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>

R
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.


 não sei mais o que fazer.  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 ]
M

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…



:expressionless:



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

Criado 23 de março de 2003
Ultima resposta 25 de mar. de 2003
Respostas 5
Participantes 4