Olá a todos, estou tendo dificuldades em abrir um servlet que criei para treinar
se eu colocar todo o caminho dele (http://localhost:8080/web/Teste.java) ele abre, mostrando o fonte da classe, se eu coloco sem o .java ele da o erro:
HTTP Status 404 - /web/Teste
type Status report
message /web/Teste
description The requested resource (/web/Teste) is not available.
Apache Tomcat/6.0.14
essa classe se encontra na raiz do projeto, não está dentro de nenhuma pasta
meu web.xml se encontra no mesmo lugar que a classe:
<?xmlversion="1.0"encoding="ISO-8859-1"?><!DOCTYPEweb-appPUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3_dtd"><web-app><servlet><servlet-name>Teste</servlet-name><servlet-class>Teste</servlet-class></servlet><servlet-mapping><servlet-name>Teste</servlet-name><url-pattern>/Teste</url-pattern></servlet-mapping></web-app>
alguem pode me ajudar nisso? há algo errado no meu web.xml? algum outro fator pode estar influenciando o andamento?
att,
Fernando Cartaxo
–edit–
só a termos de informações, uso o tomcat 6.0 e o plugin sysdeo no eclipse
Caro Fernando,
sua classe deve ser compilada, e o arquivo Teste.class resultante da compilação deve ser colocado dentro do diretório /web/WEB-INF/classes
Caro Fernando,
sua classe deve ser compilada, e o arquivo Teste.class resultante da compilação deve ser colocado dentro do diretório /web/WEB-INF/classes
ainda nao conseguir…
não tou achando nada parecido na net, no google, deve ser uma besteira que tou me passando
–edit
realmente nao tem nenhum .class no diretorio /web/WEB-INF/
nicoweda
Então, no Eclipse vc tem que ir lah em “Configure build path…” e na aba source muda o default output folder pra onde vc deseja jogar as suas classes compiladas, no caso SeuProjeto/WEB-INF/classes
Abraços!
FernandoCartaxo
nicoweda:
Então, no Eclipse vc tem que ir lah em “Configure build path…” e na aba source muda o default output folder pra onde vc deseja jogar as suas classes compiladas, no caso SeuProjeto/WEB-INF/classes
Abraços!
Está configurado desse jeito já… pode ter alguma relação ao jdk que tou usando?
nicoweda
Faz assim, cria uma source folder chamada src
joga sua classe dentro dessa pasta, e tenta denovo.
Abraços
FernandoCartaxo
nicoweda:
Faz assim, cria uma source folder chamada src
joga sua classe dentro dessa pasta, e tenta denovo.
Abraços
fiz isso, continua dando o mesmo erro =(
--edit
acho que assim fica mais fácil de passar o que estou querendo
<?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>Web</servlet-name><servlet-class>Web</servlet-class></servlet><servlet-mapping><servlet-name>Web</servlet-name><url-pattern>/Web</url-pattern></servlet-mapping></web-app>
e minha classe Web é essa:
importjava.io.IOException;importjava.io.PrintWriter;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;/** * O método padrão invocado em um servlet é doGet. * A especificação 2.3 de servlet (que é a que estou trabalhando) implementa * os 7 métodos do HTTP 1.1 (get, head, post, options, put, delete, trace). * Os métodos mais comumente utilizados em aplicações web são get e post. */publicclassWebextendsHttpServlet{/** * É executado quando é feita uma requisição com método GET pelo cliente. * * @param request Objeto com as informações pertinentes a requisição * @param response Objeto com as informações pertinentes a reposta para o cliente */protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{PrintWriterpw=response.getWriter();// pega o 'escritor' da resposta pw.println("<HTML>");pw.println("<TITLE>Olá Mundo em Servlet!</TITLE>");pw.println("<BODY>");pw.println("Olá Web!");pw.println("</BODY>");pw.println("</HTML>");pw.flush();// descarrega as informações. não é obrigatória a chamda deste método }}
Será que ajuda?
zirocool
Meu caro…
Ao trabalhar com servlets, tente criar elas com pacotes específicos.
As vezes o container se perde quando tu não especifica um pacote na tua servlet.
Digamos que tu tenha uma servlet no pacote
br.com.guj
É importante observar, que no parametro servlet-name tu pode especificar qualquer coisa, isso servirá somente como referência pra ti chamar no mapping.
NOMEDOTEUCONTEXTO = nome da webapp q tu criou no teu server.
FernandoCartaxo
fiz do jeito que você falou zirocool mas continuo na mesma…
algo que observei é que mesmo eu digitando localhost:8080/web onde o web é o meu contexto ele não lista os arquivos dentro dele, que em outro computador que usava e conseguir rodar a servlet listava… creio eu que deve ser algum problema de configuração…
alguem sabe o que pode ser isso?
–edit
conseguir agora, o erro era na hierarquia das classes, agora que arrumei rodou meu servlet, porém ele contiuna não listando os arquivos da pasta da minha aplicação, por exemplo, ao digitar localhost:8080/web ele deveria aparecer todos os meus arquivos, só que dá o mesmo erro de antes…
segue a minha antiga hierarquia e a nova, com seus respectivos web.xml, para caso alguem tenha o mesmo erro:
antigo
novo
mas continua minha duvida, de porque nao aparece a listagens dos arquivos da pasta da minha aplicação