Problemas com aplicação WEB (JSP e Tomcat)

Tenho um site desenvolvido usando jsp/javabeans e esta rodando no servidor Tomcat 4.1.30. De tempos em tempos o site fica totalmente perdido (clica em um link vai pra outro) isso teria alguma coisa a ver com o Tomcat? Alguém já passou por isso? O que faço pra resolver isso?

como está seu 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>
<display-name>Welcome to Tomcat</display-name>
<description>
Welcome to Tomcat
</description>
</web-app>

Estranho mesmo, obviamente vc já olhou todos os <a href:""> e já se certificou que está tudo ok.
Cara, porque vc não usa um controlador?

sim os <a href:""> estão todos ok pois o site funciona corretamente, mas de uma hora pra outra “embaralha” tudo.
que Controlador?

obrigado

ainda nao consegui identificar o que pode estar causando este problema…
Poderia resolver se ao invés do Tomcat estivesse usando o JBoss???

teria como vc postar a pasta pra gente dar uma olhada?

desculpe nao entendi que pasta postar…
gostaria de saber se este problema é com o servidor de aplicações ou alguma configuração deste (número de acessos, por exemplo) ou com a programação do site (tratamento de sessões, por exemplo)

a pasta com os arquivos do site

o jboss possui um “tomcat interno” nao creio que resolveria o problema

Cara um CONTROLADOR é apenas um SERVLET que direciona todas as suas paginas, a vantagem disso é quando vc tem muitas páginas vc controla tudo em um só lugar.
Ao invés da jsp “A” chamar a jsp “B”, ela chamará UM SERVLET “CONTROLADOR” que encaminhará para a “B”. segue o código completo de um servlet CONTROLADOR com 03 JSP’s

[code]
package loja;
import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class Controller extends HttpServlet {

// initialise the stock bean
// note that it is done from the controller not a JSP
public void init(ServletConfig config) throws ServletException {
super.init(config);
ServletContext application = getServletContext();
application.setAttribute(“stock”,new Stock());
}

// this is where is the controller allocates the appropriate redirection
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
ServletContext application = getServletContext();

if (req.getParameter("page") != null) {
    boolean browsing = (req.getParameter("browsing")) != null;
    String page = req.getParameter("page");
    String nextURL = "";
    // the logic here could be factored out
    // into separate request handler classes
    if (page.equals("book") )
        nextURL="/book.jsp";
    else if (page.equals("cd"))
        nextURL="/cd.jsp";
    else if (page.equals("dvd"))
        nextURL="/dvd.jsp";
    else
        nextURL="/errorPage.jsp";

    // now forward the request to the appropriate page
    RequestDispatcher dispatcher = application.getRequestDispatcher(nextURL);
    dispatcher.forward(req,res);
}
else {
    RequestDispatcher dispatcher = application.getRequestDispatcher("/welcome.jsp");
    dispatcher.forward(req,res);
}

}
}[/code]

nesta página vc tem o controla para onde pagina está sendo direcionada.
O mais importante
if (page.equals(“book”) )
nextURL="/book.jsp";
, essa informação vem da sua JSP, no ACTION DO SEU FORM tem que está assim:

<FORM name="form1" method="get" ACTION="controller?page=/PAGINA_DE_DESTINO.jsp">

1 abraço,
Jesley.Sena
:shock:

sua classe chama Controller

esta minusculo no action “controler”
tenta mudar para Controler no ACTION do form

Fábio, quando colocamos

<form name="form1" method="get" action="controller?page=/PAGINA_DE_DESTINO.jsp">

a palavra controller em minúsculo não tem nada haver com o nome da classe. Esse nome vem do mapeamento do seu web.xml.

Segue o trecho do código

<servlet-mapping>

		<servlet-name>Controller</servlet-name>

		  <url-pattern>/controller</url-pattern>

</servlet-mapping>

Na verdade o que ficou faltando foi a i[/i]/controller.

1 abraço
Jesley.Sena
:shock:

sim, mas o web.xml nao tinha sido postado junto, e eu normalmente mapeio o servlet ou bean com o mesmo nome

voltando ao problema hehe
vamos tentar ver oq pode ser
alguem tem alguma ideia?

Uma informação importante, acho que coloquei de maneira errada nos outros posts…
Quando acontece o problema nem sempre no clique no link o redirecionamento vai para um jsp, as vezes vai para uma imagem… (totalmente perdido)

Um controlador central distribuindo as requisições para varios actions é uma ótima idéia, pois centraliza a lógica de acessos e é relativamente simples de desenvolver.

:smiley: