Ajuda com Servlet + JSP

Pessoal, estou tentando rodar um programa teste para começar uma aplicação, mas estou com um problema, não estou consseguindo executar uma Servlet. Estou startando o tomcat e configurei no web.xml da minha aplicação o caminho do minha classe, mas quando chamo no browser ele não acha o que deixei de fazer??

meu web.xml dentro do WEB-INF

<?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> 

    <!-- Indica ao Tomcat as Servlets da nossa aplicacao --> 
     
    <servlet> 
        <servlet-name>HelloServlet</servlet-name> 
        <servlet-class>HelloServlet</servlet-class> 
    </servlet> 

    <!-- Define um padrão de url através do qual a HelloServlet será acessada. 
     No caso qualquer url do tipo 
     "http://localhost:8080/HelloServletApp/QualquerCoisa.teste" 
     faz com que a nossa HelloServlet seja chamada --> 
     
    <servlet-mapping> 
        <servlet-name>HelloServlet</servlet-name> 
        <url-pattern>*.teste</url-pattern> 
    </servlet-mapping> 
     
    <!-- Define outro padrão de url através do qual a HelloServlet será acessada. 
     No caso, a url "http://localhost:8080/HelloServletApp/HelloServlet" 
     faz com que a nossa HelloServlet seja chamada --> 
     
    <servlet-mapping> 
        <servlet-name>HelloServlet</servlet-name> 
        <url-pattern>/HelloServlet</url-pattern> 
    </servlet-mapping> 

    <session-config> 
        <session-timeout>30</session-timeout> <!-- 30 minutes --> 
    </session-config> 

</web-app> 

Minha classe HelloWord

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloServlet extends HttpServlet   {
	public void doGet(HttpServletRequest request, HttpServletResponse response)   
    throws IOException, ServletException   
{   
    String alo = "Alô Mundo!";   
    PrintWriter out = response.getWriter();   

    out.println("<html>");   
    out.println("<body><h1>" + alo + "</h1></body>");   
    out.println("</html>");   
} // doGet  
}

Mensagem de ERRO

Aguém podereia dar uma luz??

bon dia,

Você meteu o ficheiro HelloServlet.class dentro de WEB-INF/classes/
e web.xml dentro de WEB-INF/

IF is true : webapps/HelloServletApp/WEB-INF/classes/HelloServlet.class

THEN URL some thing like this : http://host:8080/HelloServletApp/HelloServlet

esperementa com este web.xml :

<?xml version="1.0" encoding="ISO-8859-1"?> Exemples d'application Web
<servlet>
	<servlet-name>HelloServlet</servlet-name>
	<servlet-class>HelloServlet</servlet-class>
</servlet>

<servlet-mapping>
	<servlet-name>HelloServlet</servlet-name>
	<url-pattern>/HelloServlet</url-pattern>
</servlet-mapping>

n manjo mt, mas como comecei a estudar isso tbem essa semana…

pagina jsp ta abrindo normal ?
vc configirou pra saida das classes ficarem dentro do WEB-INF/classes ?

Opa…sim a página .jsp abre sim, só as classes q não estão sendo encontradas…

Meu HelloServlet.class está dentro da pasta webapps/HelloServletApp/WEB-INF/classes/ e meu web.xml está dentro de webapps\HelloServletApp\WebRoot\WEB-INF, fiz a modificação no xml, como v/falado mas mesmo assim não encontra a classe???

Muito sinistro isso…

Alguma sugestão??? :wink:

Darla.Lima

Sou novo com o Java mais acredito que neste caso de JSP possa te ajudar.

Seu problema deve estar na sua url.

Exemplo:

<servlet-mapping> <servlet-name>TestaErro</servlet-name> <url-pattern>/testa-erroservlet</url-pattern> </servlet-mapping>

Neste caso minha url ficaria >> http://localhost:8080/jspteste/testa-erroservelet <<< onde o jspteste e o nome do meu projeto.

No seu caso seria >> http://localhost:8080/nome_do_seu_projeto_aqui/HelloServlet <<

Mais uma coisa, você não especificou o package que esta a sua class HelloServlet veja o codigo abaixo;

<servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>HelloServlet</servlet-class> //esta sem a package </servlet>

Creio que deveria ser:

<servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>packege_da_class_HelloServlet.HelloServlet</servlet-class> </servlet>

Veja se funciona ok, fico aguardando um retorno.

Espero ter ajudado!!! :slight_smile:

Creio que esteja certo, minha url está assim:

http://localhost:8080/HelloServletApp/HelloServlet

meu web.xml está 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> 
<display-name>Exemples d'application Web</display-name> 


<servlet> 
<servlet-name>HelloServlet</servlet-name> 
<servlet-class>HelloServlet</servlet-class> 
</servlet> 

<servlet-mapping> 
<servlet-name>HelloServlet</servlet-name> 
<url-pattern>/HelloServlet</url-pattern> 
</servlet-mapping> 

</web-app> 

meu projeto está com essa estrutura:

a mesnagem continua a mesma:

HTTP Status 404 - /HelloServletApp/HelloServlet

--------------------------------------------------------------------------------

type Status report

message /HelloServletApp/HelloServlet

description The requested resource (/HelloServletApp/HelloServlet) is not available.


--------------------------------------------------------------------------------

Apache Tomcat/5.5.17

Eu não estou usando package , está no default package do projeto…

Mais alguma sugestão…???

DARLA

Acredito que mesmo que sua class esteja no default package do projeto vc precisa indicar isso no web.xml, tente e veja o resultado.

Reparei tbm que vc colocou um nome diferente na servlet-name do qual vc esta usando na url do seu navegador, de uma olhada nisso pois o erro que vc passou esta indicando exatamente isso.

Estou analisando novamente o problema… favor tenha paciência que encontraremos o problema.

Tá mas como eu indico ao meu web.xml, que ele deve pegar da default package do projeto???

Não vi diferença na chamada da URL para o nome que está definido no web.xml (servlet-name ) que diferença seria essa!!?!?

Paciência eu tenh até de sobra mas tem hora que esgota…uma coisa simples dessa não funcionar é brabo…

valeu …

tah faltando o caminho completo da tua classe HelloServlet …

Ex.: se tua classe está dentro do pacote br.com … ficará assim:

HelloServlet br.com.HelloServlet HelloServlet /HelloServlet

se tu colocou a classe no package default, cria um package, coloca ela no pacote criado e informa no web.xml

flw