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