Ae galera, seguinte:
Eu estoiu usando o tomcat a ultima versão se nao me engano a 4.1.18
Eu crio o diretotio da minha aplicação myApp e dentro dele o WEB-INF
no WEB-INF coloco o meu descritor web.xml
Ainda dentro do WEB-INF tenho o diretorio classes.
Dentro dele coloco minha classe q extende HttpServlet testeServlet.class
Ela simplesmente vai retornar ao browser ‘Hello’
Agora darei dois arquivos web.xml:
Arquivo 1:
<web-app>
<servlet>
<servlet-name>Teste</servlet-name>
<servlet-class>testeServlet</servlet-class>
</servlet>
</web-app>
De acordo com este codigo uma desta URLs devia acessar o Servlet corretamente:
http://localhost:8080/myApp/Teste
http://localhost:8080/myApp/testeServlet
http://localhost:8080/myApp/servlet/Teste
http://localhost:8080/myApp/servlet/testeServlet
Mas nenhuma dessas URLs funciona, todas retornam 404.
O que tem de errado?
O segundo arquivo web.xml seria igual ao primeiro com a diferença que iria nmapear o padrao de URL /Teste para meu servlet de name Teste. dai eu acesso meu Servlet do seguinte modo:
http://localhost:8080/myApp/Teste
e ai funciona legal…
Entao para funcionar eu SEMPRE tenho q fazer o mapeamento???
Aguardo respostas…
Valew galera
Eu também estou utilizando o Tomcat 4.1.18, caso você queira chamar a sua aplicação sem mapear a Servlet (exemplo http://localhost:8080/myApp/servlet/minhaservlet) você precisa adicinar o invoker com o url-pattern /servlet/*. Exemplo abaixo :
<?xml version="1.0" encoding="UTF-8"?>
<!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>minhaservlet</servlet-name>
<servlet-class>minhaservlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>minhaservlet</servlet-name>
<url-pattern>/servlet/minhaservlet</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>
index.jsp
</welcome-file>
<welcome-file>
index.html
</welcome-file>
<welcome-file>
index.htm
</welcome-file>
</welcome-file-list>
</web-app>
Caso você tenha mais de uma webapp e você não quer colocar o invoker para cada web.xml , basta você editar o web.xml global(TOMCAT_HOME/conf/web.xml) e procurar a seguinte linha :
<!-- The mapping for the invoker servlet -->
<!--
<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>
-->
Perceba que ele está comentado, basta retirar o comentário, salvar e reiniciar o tomcat
Douglas, oq vc postou funfou legal…
Mas tem como chamar o servlet apenas pelo seu nome?
No caso do meu exemplo
http://localhost/myApp/Teste
sem colocar o /servlet/Teste
Estou perguntando pq possuo um livro que se chama Java para WEB com Servlets, JSP e EJB e o PRIMEIRO exemplo que ele dá no livro ele menciona dessa forma (que se pode chamar o servlet apenas pelo seu nome) e nem faz menção nenhum ao invoker…
Agradeço desde já
T+
Abraços
[quote=“duardor”]Douglas, oq vc postou funfou legal…
Mas tem como chamar o servlet apenas pelo seu nome?
No caso do meu exemplo
http://localhost/myApp/Teste
sem colocar o /servlet/Teste
Estou perguntando pq possuo um livro que se chama Java para WEB com Servlets, JSP e EJB e o PRIMEIRO exemplo que ele dá no livro ele menciona dessa forma (que se pode chamar o servlet apenas pelo seu nome) e nem faz menção nenhum ao invoker…
Agradeço desde já
T+
Abraços[/quote]
Eu também tenho esse livro :lol: , não acredito que se possa chamar a Servlet http://localhost/myApp/Teste sem utilizar um mapeamento (eu desconheço), vou ver esse primeiro exemplo assim que eu chegar em casa.
Falow
Ok Douglas
O livro q eu to falando eh um q tem um peixinho na capa…
Verifica ai pra mim
T+
[quote=“duardor”]Ok Douglas
O livro q eu to falando eh um q tem um peixinho na capa…
Verifica ai pra mim
T+[/quote]
É esse livro mesmo (na minha opinião na parte de EJB deixa a desejar), assim que eu chegar em casa depois do trabalho + faculdade eu verifico para você.
Falow
Eu estive analisando esse livro, e o primeiro exemplo que eu vi sobre Servlets (página 10) é a servlet TestingServlet (nome da classe), mas na página 12 ele diz que você pode chamar um recurso ESTATICO a partir da url http://localhost/myApp/nomedapagina, outra coisa que ele faz é colocar a classe TestingServlet com o servlet-name Testing (página 12) e chama http://localhost/myApp/servlet/Testing, se você não colocasse o servlet-name do descritor você teria que chamar a servlet chamando a partir da classe http://localhost/myApp/servlet/TestingServlet
Seria isso mesmo ? Em qual página que você viu ?, pois eu posso estar enganado
Falow
Eh esse mesmo Douglas
Mas o livro nao disse nada sobre ativar o invoker no arquivo do Tomcat por isso nao estava dando certo…
Mas valew pela ajuda
Abraços