Livro Java servlet: programação

9 respostas
cu_ringa

quem tiver esse livro por favor me ajude. É o seguinte, na pág. 19 tem dizendo como executer o servlet Hello World, ja segui as instrunçoes mas nao funciona.
Nessa pag. na linha 2 e 3 linha de baixo para cima ele diz o seguinte:

“Apenas certifique-se de que tenha os pacotes javax.servlet e javax.servlet.http em seu caminho. Com o servidor Tomcat, tudo que terá q fazer é incluir server_root/lib/servlet.jar(ou um futuro equivalente) em algum lugar em seu caminho de classe.”

server_root e o diretorio em q o servidor está instalado.

Instalei o Tomcat, e no diretório raiz nao tem o diretorio lib, eu tenho que cria-lo?

o livro na mesma pag e na 7 linha de baixo p cima, diz q devo colocar o arquivo .java no diretório server_root/webapps/ROOT/WEB-INF/classes
e depois compila-lo, coloquei já os *.class direto, mas eu acho q isso nao é problema?

se alguem q começou estudando servlet por esse livro e q já quebrou bastante a cabeça puder me ajudar a fazer o servlet Hello World funcionar, eu estarei eternamente agradecido.

valeu!!!

9 Respostas

_fs

É estranho não ter o diretorio LIB, mas já que não tem, cri-o sim :smiley:

E só é necessário ter os .class nas pasta classes.

Já aproveito para te mostrar a disposição comum das pastas:

TOMCAT
|________web-apps
		|________sua aplicação
				|________web-inf
						|________web.xml
						|________classes
						|________lib
Bruno_Henrique

O dirtório lib e o arquivo se encontram na pasta,

C:/Tomcat4/common/lib/servlet.jar

O Lipe falou certo, o padrão para estrutura de diretório é exatamente esta.

Certo! :wink:
Bruno Henrique.

cu_ringa

ei fiz do jeito qe vcs falaram mas não deu certo, olha aí o diretório:

c:
 |__ Arquivos de programas
                   |
                   |___Apache Group
                               |
                               |___Tomcat 4.1
                                         |_bin
                                         |_common
                                         |_cof
                                         |_lib
                                         |_logs
                                         |_server
                                         |_shared
                                         |_temp 
                                         |_webapps
                                               |_examples
                                               |      |_images
                                               |      |_jsp
                                               |      |_servlets
                                               |      |_Web-inf
                                               |            |_classes
                                               |            |_jsp
                                               |_Root
                                               |     |_Web-inf
                                               |            |_classes
                                               |_tomcat-docs
                                               |_webdav
                                               |_Web-inf
                                               |      |_classes
                                               |      |_lib
                                               |_work

O diretorio Web-inf dentro de webapps não existia foi eu q criei seguindo as orientações de vcs, e coloquei dentro dele os seguintes arquivos e diretórios: o arquivo web.xml(abaixo) e coloquei dentro de Web-inf, o diretorio lib e coloquei dentro dele o arquivo servlet.jar, no diretório classes coloquei o arquivo HelloWorldExample.class e a classe ou seja o arquivo HelloWorldExample.java no diretorio webapps.
inicializei o Tomcat, abri o InternetExplorer digitei a seguinte url: http://localhost:8080/servlet/hello e também tentei essa http://localhost:8080/hello, mas nenhuma deu certo aparecendo a pág. de erro.

Mas quando coloco o arquivo HelloWorldExample.class dentro do diretorio classes como abaixo:

webapps
|_examples
|_Web-inf
|_classes
|_jsp

e digito o url: http://localhost:8080/examples/servlet/HelloWorldExample
o servlet aprece normalmente sem dar erro.

Arquivo: web.xml

<?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>
		hello
	</servlet-name>
  	<servlet-class>
		HelloWorldExample
	</servlet-class>
  </servlet>
</web-app>

e então galera como faço para rodar o servlet digitando o url q ta dando erro? e pq tá dando erro se fiz do jeito q vcs falaram? o web.xml está configurado errado?

[b][size=“18”]ME AJUDEM!!![/size][/

cv1

O nome eh WEB-INF. Nao eh Web-Inf, nao eh web-inf, nao eh WeB-InF. :wink:

cu_ringa

já está WEB-INF, mas continua dando erro!!!

disseram para mim mapear, aí está mas continua dando erro!!!

código: web.xml

<?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> 
      hello 
   </servlet-name> 
     <servlet-class> 
      HelloWorldExample 
   </servlet-class> 
  </servlet> 
  <servlet-mapping> 
        <servlet-name>hello</servlet-name> 
        <url-pattern>/hello</url-pattern> 
   </servlet-mapping> 
</web-app>
Ironlynx
Ponha 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>HelloWorldExample </servlet-name> 
     <servlet-class>HelloWorldExample </servlet-class> 
  </servlet> 
  <servlet-mapping> 
        <servlet-name>HelloWorldExample</servlet-name> 
        <url-pattern>/HelloWorldExample</url-pattern> 
   </servlet-mapping> 
</web-app>
cu_ringa

pq tenho q colocar em todas as tags HelloWorldExample, se quero chamar o servlet a partir de hello, assim:

http://localhost:8080/alo/hello

eu acho e q mandaram eu fazer é colocar o web.xml do jeito q ele tá.

Ironlynx

Na verdade,se vc só quer chamar a servlet assim: http://localhost:8080/alo/hello

Era só mudar uma coisa no servlet-mapping q pus acima(q é quem define o padrão de como sua Url será acessada):

<servlet-mapping> 
        <servlet-name>HelloWorldExample</servlet-name> 
        <url-pattern>/hello</url-pattern> 
</servlet-mapping>

O resto deixe HelloWorldExample mesmo(q eh o nome da sua classe certo?)
Deveria funcionar…

cu_ringa

olhe no codigo q coloquei acima, o url-pattern ja esta como vc falou.

Criado 12 de fevereiro de 2004
Ultima resposta 16 de fev. de 2004
Respostas 9
Participantes 5