Primeiro Servlet NÃO RODA

1 resposta
A

[color=blue][/color] FALA GALERA ESTOU COM PROBLEMA QUANTO A RODAR O PRIMEIRO SERVLET JA CONFIGUREI AS VARIAVEIS DE AMBIENTE CATALINA HOME E JAVA_HOME
E NO CASO COLOQUEI MEU PONTO CLASS EM NESSE CAMINHO

C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.0\webapps\servlets-examples\WEB-INF\classes

E NÃO RODA. O SERVIDOR O CASO INICIA ATE RODA OS EXMPPLOS MAS NÃO O MEU PRIMEIRO SERVLET QUANDO COLOCO ESTE CAMINHO:

http://localhost:8080/servlets-examples/servlet/AloMundoServ

APARECE A SEGUINTE MENSAGEM:

HTTP Status 404 - /dev/servlets-examples/servlet/AloMundoServ


type Status report

message /dev/servlets-examples/servlet/AloMundoServ

description The requested resource (/dev/servlets-examples/servlet/AloMundoServ) is not available.


Apache Tomcat/5.0.28

SERA QUE ALGUEM PODERIA ME DAR UMA FORÇA :roll:

1 Resposta

Rafael_Steil

Oi Andre,

no caso de aplicacoes web, nao precisa / nao adianta configurar o CLASSPATH. Voce simplesmente tem que colocar os .class (na estrutura correta do pacote, se houver) dentro do diretorio WEB-INF/classes da tua webapp.

Depois disso, eh preciso configurar o arquivo WEB-INF/web.xml com o mapeamento do servlet. Esse lance de /servlet/xxx nao eh mais usado. Voce tem duas maneiras de configurar o web.xml para o teu servlet. Eis um exemplo abaixo:

<?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>alo-servlet</servlet-name>
		<servlet-class>AloMundoServ</servlet-class>
	</servlet>

    <servlet-mapping>
    	<servlet-name>alo-servlet</servlet-name>
    	<url-pattern>/*</url-pattern>
    </servlet-mapping>
</web-app>

Em “AloMundoServ” voce coloca o nome da tua classe SEM a extensao .class. A tag “” eh usada apenas para referenciar esse servlet dentro do arquivo de configuracao. Note que usamos isso no .
O eh usado para mapear o padrao de acesso ao teu servlet. No caso, “/*” significa que qualquer coisa que voce digitar na url vai invocar o servlet. Voce pode mapear para alguma determinada extensao tambem, bastando colocar o nome dela, como em

<servlet-mapping>
    	<servlet-name>alo-servlet</servlet-name>
    	<url-pattern>*.blah</url-pattern>
    </servlet-mapping>

Assim, voce acessando http://localhost:8080/servlets-examples/Alo.blah ira invocar o teu codigo. No caso do “/*”, qualquer noem que voce usar ira funcionar:

http://localhost:8080/servlets-examples/AloMundoServ
http://localhost:8080/servlets-examples/Servlet123
http://localhost:8080/servlets-examples/abc

Essa eh a ideia dos mappings.

Rafael

Criado 30 de março de 2005
Ultima resposta 30 de mar. de 2005
Respostas 1
Participantes 2