[Last Call] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 9607
  • Last Modified:

"Server redirected too many times (20)" problem

I'm trying to open a URL using HttpsURLConnection, but once in a while I got this message: "Server redirected too many times (20)". What can I do about this? Is this usually something wrong with the java code or the website setup?

Thanks in advance for the help
0
rnicholus
Asked:
rnicholus
  • 7
  • 5
  • 5
  • +2
3 Solutions
 
Ajay-SinghCommented:
Usually happens when you are missing some of cookies server needs.
Try using jakarta-httpclient, it has cookie handling
http://jakarta.apache.org/commons/httpclient/
0
 
rnicholusAuthor Commented:
Hi Ajay-Singh,

Thanks for your reply.
I don't understand how this is related to the cookies server needs. Could you please explain more?
0
 
Ajay-SinghCommented:
yes. there could be 2 cases:
1. server needs a cookie that client is not sending and server redirects (after adding some cookies) to some page. When client ignores the second page - it leads to infinite redirection.
2. The server is not configured correctly. Like when we try to download page x.html, it redirects to y.html. When y.html is asked it redirects to x.html
0
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 
rnicholusAuthor Commented:
Ajay-Singh,

1. What do you mean by "client ignores the second page."?
2. If it happens very random and only once in a while, isn't it unlikely that the server actually needs the cookie?

Thanks for the on-going help.
0
 
Ajay-SinghCommented:
> What do you mean by "client ignores the second page."?
sorry about typo - i mean when client ignore the cookie sent my the server in the redirection response.
0
 
Ajay-SinghCommented:
> If it happens very random and only once in a while, isn't it unlikely
> that the server actually needs the cookie?
and are you able to download this page consistently from standard browsers (like IE)
0
 
rnicholusAuthor Commented:
One of my coworker have tried to access the page manually when the "Server redirected too many times (20)" message occurs in the program console output.
He said that he tried to login several times using username and pwd that has been provided to us but the page rejected the login.
And then it prints the exception below.

I'm not sure whether this is caused by my friends trying to login too many times or could be something else.

-----------------------------------------------------------------------------------------

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException
      org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:358)
      org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
      org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
      javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
      ..........

root cause

java.lang.NullPointerException
      org.apache.jsp.error_jsp._jspService(error_jsp.java:415)
      org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
      javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
      org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
      org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
      org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
      javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
      ..........
0
 
Ajay-SinghCommented:
by any change you jsp redirects based on some condition? can you post that part of the jsp code?
0
 
rnicholusAuthor Commented:
That JSP exception is not coming from my program. What I have is a console-based program that access this page.

The JSP exception is what my friend see in the browser (I think he used Internet Explorer) when trying to access that page.
0
 
astorerCommented:
0
 
ksivananthCommented:
I think, you are looking for this,

try {
  URL url = new URL("yourURL");
  HttpURLConnection con = (HttpURLConnection) url.openConnection();
  con.setFollowRedirects(true);
  con.setInstanceFollowRedirects(false);
  con.connect();
 
  while (String.valueOf(con.getResponseCode()).startsWith("3")) {
     String theLocation = con.getHeaderField("Location");
     con.disconnect();
     url = new URL(theLocation);
     con = (HttpURLConnection) url.openConnection();
     con.setFollowRedirects(true);
     con.setInstanceFollowRedirects(false);
     con.connect();
     }
     /** at this point you are located at the last(target)page of
         redirection chain */
 
} catch (Exception ex) { ex.printStackTrace(); }

0
 
ksivananthCommented:
and this may also help you to increase the max redirects!

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4458085
0
 
rnicholusAuthor Commented:
ksivananth,
could you please explain to me what your code will do?

astorer,
i have seen the link before. i'm currently running the code the link provides -> just to know what URL I am being redirected to.
0
 
ksivananthCommented:
It checks if the request is redirected, if so, makes a connection to the redirected URL! If your URL redirects more than 20 times, you may consider using the maxRedirects property.
0
 
ksivananthCommented:
but did u try that?
0
 
rnicholusAuthor Commented:
I will try this code. I'll let you know
0
 
rnicholusAuthor Commented:
ksivananth,

i tried your code and when the exception occurs, it doesn't go inside the while loop.
any advice?

thanks
0
 
ksivananthCommented:
>>i tried your code and when the exception occurs, it doesn't go inside the while loop.

what exception?

is it the "Server redirected too many times (20)"? if so, try set the "http.maxRedirects" property to large value!
0
 
khimanijayCommented:
Check this out. Its the similar problem I face and here is the solution to it...
http://jaykhimani.blogspot.com/2009/04/problem-with-jdk-and-network-proxy.html
0

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

  • 7
  • 5
  • 5
  • +2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now