Problemas com eclipse+tomcat+servlet

9 respostas
Ronaldoviper

Pessoa, sou iniciante, e não consegue resolver meu problema

É o seguinte, fiz os seguintes passos:
-Instalei o tomcat 5.0
-Instalei o Sysdeo, plugin do eclipse para tomcat
-Criei um novo projeto
-Criei um servlet chamado Teste
-Criei uma pagina chamada index.jsp
-Criei um arquivo xml dentro da pasta WEB-INF com as segintes configurações:

<?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>serv</servlet-name>
 <servlet-class>serv</servlet-class>
</servlet>
<servlet-mapping>
 <servlet-name>serv</servlet-name>
 <url-pattern>/Aplicacao</url-pattern>
</servlet-mapping>
</web-app>

Meu browser consegue chamar perfeitamente minha pagina index.jsp quando digito http://localhost:8080/Aplicacao

O problema é quando tento acessar um servlet, aparece a pagina de erro do tomcat com a seguinte menssagem:
type Status report
message /Aplicacao/serv
description The requested resource (/Aplicacao/serv) is not available.

Alguem sabe se os passo são somente estes mesmo? Esta está faltando algo, alguma configuração a mais ou alguma coisa assim?Quanquer ajuda é bem vinda

Obrigado

9 Respostas

Pedrosa

vc precisa criar o diretorio virtual no tomcat ou fazer o deploy da sua aplicação, isso aqui pode te ajudar:

http://www.motorway.com.br/usr/daniel/java/CursoJavaWeb.zip

Daniel_Quirino_Olive

Pedrosa:
vc precisa criar o diretorio virtual no tomcat ou fazer o deploy da sua aplicação, isso aqui pode te ajudar:

http://www.motorway.com.br/usr/daniel/java/CursoJavaWeb.zip

Não, na verdade o que eu acredito que está errado é o mapeamento do servlet no web.xml.

Para tanto, é preciso que você saiba exatamente o que você está fazendo no seu web.xml para configurá-lo corretamente. Então um tutorialzinho de 5 minutos :wink:

O layout básico de um web.xml é mais ou menos igual ao que você criou. De maneira geral, ele é 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>ALIAS_DO_MEU_SERVLET</servlet-name>
  <servlet-class>NOME_DA_CLASSE_DO_MEU_SERVLET</servlet-class>
 </servlet>
 <servlet-mapping>
  <servlet-name>ALIAS_DO_MEU_SERVLET</servlet-name>
  <url-pattern>PADRAO_DE_URL_PARA_ACESSAR_MEU_SERVLET</url-pattern>
 </servlet-mapping>
 </web-app>

No exemplo acima, ALIAS_DO_MEU_SERVLET é um nome arbitrário qualquer e que servirá para identificar seu servlet na sua aplicação (é como um apelido para seu servlet). Ele serve para referenciar a classe onde seu servlet está implementado, identificado no exemplo anterior por NOME_DA_CLASSE_DO_MEU_SERVLET. Vale lembrar que em NOME_DA_CLASSE_DO_MEU_SERVLET você deve colocar o nome completo da classe, o que inclui seu pacote. Por fim, para permitir que seu ervlet seja acessível através de uma URL de sua preferência, é preciso que você defina seu padrão através em PADRAO_DE_URL_PARA_ACESSAR_MEU_SERVLET.

Ou seja, supondo que eu tenha um servlet que está implementado na classe com.acme.servlet.MeuServletQualquer e queria que ele seja acessado através do padrão de URL MeuServlet.foo, eu criaria o web.xml desta forma:

<?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>AliasQualquer</servlet-name>
  <servlet-class>com.acme.servlet.MeuServletQualquer</servlet-class>
 </servlet>
 <servlet-mapping>
  <servlet-name>AliasQualquer</servlet-name>
  <url-pattern>/MeuServlet.foo</url-pattern>
 </servlet-mapping>
 </web-app>

E é isso. :wink:

Ronaldoviper

Cara, segui a risca este tutorial, e mesmo assim não reconhece meu Servlet, será que deve estar faltando alguma configuração para setar, ou alguma coisa assim? não entendo o por que de não estar funcionando

StriderMGBR

Opa, eu tambem acho que é problema na forma em que você mapeo o seu servlet.
Testa esse aqui!
Uma observação: aonde esta escrito “meuServlet.serv” altere a palavra “meuServlet” para o package no qual o seu servlet está.
Por exemplo: o seu servlet esta na pasta “C:\MeusSites\TesteServlet\WEB-INF\classes\meuServlet\serv.class” ai o seu “web.xml” tem que ficar do jeito que eu coloquei ai embaixo.

<?xml version="1.0" encoding="ISO-8859-1" ?>
<web-app>
  <servlet>
    <servlet-name>serv</servlet-name>
    <servlet-class>meuServlet.serv</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>serv</servlet-name>
    <url-pattern>/serv</url-pattern>
  </servlet-mapping>
</web-app>

To no aguardo ae da tua resposta!

FLW!!

Ronaldoviper

Perfeito, deu certo cara
É isso ai mesmo, muito aobrigado a todas as resposta pessoal

Ronaldoviper

No arquivo web.xml fa-se o mapeamento apenas dos servlets, ou é preciso fazer mapeamento de outras classes tb.
Por que ta acontecendo o seguinte erro, quando eu uso minha classe DAO no meu servlet, é retornado uma excpetion java.lang.NullPointerException.
É preciso mapea-la tb?

Marcel_Horner

NullPointerException nao eh problema de mapeamento nem de classpath ou qualquer coisa parecida. NullPointer acontece quando vc tenta chamar algum metodo com uma referencia nula.

Por exemplo:

String str = null;
str.length();
StriderMGBR

No web.xml você faz várias configurações da sua pagina!! Mas é necessario mapear somente os servlets!!
Olha o teu código ae porque deve ter alguma coisa errada na tua classe DAO, em algum momento de sua execução ela esta tentando utilizar alguma variável null, por isso está ocorrendo o erro!! Se for o caso, posta aqui o código fonte que agente da uma ajuda!!

Abraço!

Ronaldoviper

Bom pessoal, descobri qual era o erro, meus hbm’s estam em local errado, puts entam sou iniciante né hehehe
Valew a todos

Criado 23 de agosto de 2006
Ultima resposta 23 de ago. de 2006
Respostas 9
Participantes 5