Provavelmente muitos programadores de java mais voltados para a web já tiveram este meu problema, é que faço um programa e tudo funciona bem no meu pc, mas quando uso outro pcs dá erros por todo o lado…
Criei um simples sistema de login e logout com cookies… no meu pc funciona perfeitamente mas não nos outros … não entendo porque será isso… o código é muito grande para colocar aqui… alguem tem alguma ideia do que poderá ser?
public class SetCookies extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
for(int i=0; i<3; i++) {
Cookie cookie = new Cookie("Session-Cookie " + i, "Cookie-Value-S" + i);
response.addCookie(cookie);
cookie = new Cookie("Persistent-Cookie " + i, "Cookie-Value-P" + i);
cookie.setMaxAge(3600);
response.addCookie(cookie);
}
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String title = "Setting Cookies";
out.println ("<html>"+ "<BODY BGCOLOR="#FDF5E6">" + "<H1 ALIGN="CENTER">" + title + "</H1>" + "There are six cookies associated with this page." + "To see them, visit the" + "<A HREF="/spacecraft/ShowCookies">" + "<CODE>ShowCookies</CODE> servlet</A>." + "<P>" + "Three of the cookies are associated only with the" + "current session, while three are persistent." + "Quit the browser, restart, and return to the" + "<CODE>ShowCookies</CODE> servlet to verify that" + "the three long-lived ones persist across sessions." + "</BODY></HTML>");
}
}[/code]
Testei isto no meu pc com o tomcat e n deu problemas, criou tanto os cookies de sessão como os persistentes. Agora se pedirem a alguem que esta noutro computador para testar este codigo ele so vai criar os cookies de sessao…
Qual é o problema? será do tomcat que nao deixa criar cookies persistentes ? Não percebo… alguém sabe?.. estou completamente perdido…
Já estive à procura no site da Sun, até fiz lá um post, registei-me na mailing list do tomcat, e voltei a fazer a mesma pergunta e nada… continua sem resposta para a minha pergunta… não entendo… estou sem ideias, nunca ninguém aqui trabalhou com cookies?
Bom, quais as versoes dos navegadores das outras maquinas?? nao existe algum tipo de restricao nelas?? Nao sei se ajuda, mas tente trocar seu codigo para
for(int i=0; i<3; i++) {
response.addCookie(new Cookie("Session-Cookie " + i, "Cookie-Value-S" + i););
Cookie cookie = new Cookie("Persistent-Cookie " + i, "Cookie-Value-P" + i);
cookie.setMaxAge(3600);
response.addCookie(cookie);
}
Já testei com varias pessoas… linux, windows, IE, netscape, konqueror… não dá em nenhum, comigo funciona… eu corro a servlet, vou lá e funciona… mas se forem outras pessoas a acederem do seu computador ao meu servlet (que está no meu computador) já não funciona… não percebo… será algum problema do tomcat? algum restrição q ele tenha? estou a ficar sem ideias…
Se alguem puder testar o codigo ali em cima, verá que funciona sem problemas, mas se pedir a alguem noutro computador para aceder ao seu e testar o codigo, verá que os cookies persistentes não sao criados… pelos menos com o tomcat n está a funcionar…
Sim, testei… continua a mesma coisa… funciona comigo mas não com as pessoas que estao aceder externamente ao meu servlet… não acho q seja um erro do codigo mas sim talvez do tomcat… ja tentei reinstalar o tomcat mas tb n funciona… se vc podesse testar o codigo na sua maquina era mto bom… teria é q pedir a outra pessoa para aceder ah sua maquina para testar.
Ok, parece q o problema afinal é outro… pedi a um amigo meu para colocar o servlet no tomcat dele, e eu acedi através do meu computador. Resultado: Criou o cookie e funcionou tudo sem problemas, logo penso que a razão porque funciona apenas no meu computador terá a ver com alguma coisa que eu tenho instalado e eles não, tenho que colocar alguma coisa no CLASSPATH ou algo do genero?
Peço desculpa pelo meu numero grande de post mas é para manter, quem estiver interessado, a par do que vou descobrindo…
Ok, para concluir este topico, e depois de 2 dias de testas e muita pancada na parede descubri que o problema é do windows 2000 + IE…
Testes:
WinXP - Funciona
Win ME - Funciona
Win 98 - Funciona
Win 2k + IE - Não funciona
Win 2k + mozilla - Funciona
Basicamente o win2k + IE não deixa criar cookies com o java… não sei se é um bug conhecido mas foi o q consegui apurar disto tudo, nota-se que os win2k q experimentei tinham os updates feitos, não sei como será nos que não têm updates.
[quote=“Morcego”]Win 2k + IE - Não funciona
Win 2k + mozilla - Funciona
Basicamente o win2k + IE não deixa criar cookies com o java… não sei se é um bug conhecido mas foi o q consegui apurar disto tudo, nota-se que os win2k q experimentei tinham os updates feitos, não sei como será nos que não têm updates.[/quote]
Eu tive esse problema nesta semana, e quando acessei a minha página pelo mozilla funcionou normalmente mas quando eu acessava pelo IExplorer não criava eram criados os cookies ordinários, apesar de criar os cookies de sessão (estou usando o Win2k).
De início estava acessando o tomcat com o endereço da minha máquina da rede Windows (http://10557_sfp3/…). Quando troquei o endereço pelo ip real o IExplorer passou a aceitar os cookies normalmente.
Sim. Na verdade, com a mesma configuração, o IE aceita os cookies caso eu acesse via IP real (http://172.20.7.7/appname/), mas nega-se a criar os cookies quando acesso via nome Windows. (http://10557_sfp3/appname/).