De la “java.net.ProtocolException: Serveur redirigé trop de fois” Erreur

Je suis en train de faire une simple requête d'URL avec ce code:

URL url = new URL(webpage);
URLConnection urlConnection = url.openConnection();
InputStream is = urlConnection.getInputStream();

Mais sur cette dernière ligne, je me fais de la "redirection de trop nombreuses fois l'erreur". Si ma "page", var est, disons, google.com puis il fonctionne très bien, mais lorsque j'essaie d'utiliser ma servlet URL puis il échoue. Il semble que je peux régler le nombre de fois où il suit les redirections (par défaut 20) avec ceci:

System.setProperty("http.maxRedirects", "100");

Mais quand je la manivelle jusqu'à, disons, 100 il prend définitivement un plus pour jeter l'erreur et je sais que c'est tentant. Toutefois, l'URL de ma servlet fonctionne très bien (tout) navigateur et l'utilisation de l'option "persist" dans firebug, il semble être la seule à être rediriger une fois.

Un peu plus d'infos sur mon servlet ... il est en cours d'exécution dans tomcat et emmenés par apache à l'aide de mod-proxy-ajp'. À noter également que c'est à l'aide du formulaire d'authentification, donc les URL que vous saisissez doit vous rediriger vers la page de connexion. Comme je l'ai dit, cela fonctionne correctement dans tous les navigateurs, mais pour certaines raisons, la redirection ne fonctionne pas avec le URLConnection en Java 6.

Merci pour la lecture ... des idées?

  • Êtes-vous de vous appeler et de diriger cet appel lui-même? par exemple, Infini recusion?
  • Pourriez-vous essayer d'ouvrir cette page dans le navigateur avec les cookies?
  • - Je prendre ce site != (servlet URL qui contient URL url = new URL(webpage); URLConnection urlConnection = url.openConnection(); InputStream is = urlConnection.getInputStream();)
  • jonnyGold: voulez-vous dire localhost ou quelque chose? non, l'url est externe; samy: vous ne savez pas ce que vous demandez; dbf: bingo! c'est ça, merci!
  • Im heureux que vous l'avez obtenu, nous étions seulement de s'assurer que votre script n'était pas appeler lui-même, encore et encore, mais Im heureux que vous avez eu à travailler.
InformationsquelleAutor rjcarr | 2012-06-13