Bom…
Eu, inconformado com o Tomcat resolvi partir para o Jetty…
Em meu servidor, eu tenho um Apache na minha porta 80, e o Tomcat na 8080.
Instalei o Jetty e botei pra rodar na 8200;
E, usando o método do link abaixo:
http://docs.codehaus.org/display/JETTY/Configuring+mod_proxy
Consegui acessar alguns dos domínios que eu selecionei pra rodar com o Jetty…
Quando eu pensei que estava tudo bem…
:S resolvi fazer um login num sistema rodando num desses sites… e… simplesmente não passo do Login…
Motivo? a session está SEMPRE vazia…
:S
Que fazer? :S Já pensei até em virar vaqueiro… hehehe
Nunca fiz nada parecido, mas vou dar um chute:
O seu servidor Jetty é desligado depois da requisição? Verifica isso.
Se você estiver usando Linux (ou Mac OS), dá um:
ps aux | grep java
e verifique se o id do processo não está mudando a cada requisição.
P.S.: É como eu disse, só um chute! Mas talvez isso te dê alguma luz.
Faz diferença não…
Tanto no Windows [meu note] quanto no servidor [ um centOS 5.0 ] acontece a mesma coisa…
E, pra melhorar ainda mais… chupa essa manga:
Se eu acesso DIRETAMENTE, ou seja, pela 8200, tudo funciona tão bem como um relógio inglês…
Acessando pelo Apache/Proxy na 80… Simplesmente a Session não funciona…
Para testar essa minha teoria fiz o seguinte teste:
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;
import javax.servlet.*;
import javax.servlet.http.*;
public class SessionServlet extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=windows-1252";
public void init(ServletConfig config) throws ServletException {
super.init(config);
}
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head><title>SessionServlet</title></head>");
out.println("<body>");
out.println("<p>Teste de Session.</p>");
Enumeration en = request.getSession().getAttributeNames();
out.println("<ul>");
while(en.hasMoreElements()){
Object el = en.nextElement();
out.println("<li>"+el+" - "+request.getSession().getAttribute((String)el)+"</li>");
}
out.println("</ul>");
out.println("</body></html>");
out.close();
request.getSession().setAttribute("teste","val teste");
}
public void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {response.setContentType(CONTENT_TYPE);
doGet(request,response);
}
}
Acessando pelo endereço [depois da segunda requisição, claro]:
http://teste.local/servlet/SessionServlet
tenho a resposta
Acessando pelo endereço [depois da segunda requisição, claro]:
http://teste.local:8200/servlet/SessionServlet
tenho a resposta
[quote]Teste de Session
Teste - Val teste[/quote]