chetan
chetan

Reputation: 3255

java.io.IOException: Server returned HTTP response code: 500 for URL

I have following code to call URL : http://10.105.0.120/24online/servlet/ClientRegistrationResponse?action=response&phone=919638983856&actioncode=0000

Code :

StringBuffer request=new StringBuffer();
             request.append(xml);
             URL url = new URL(url);
             HttpURLConnection obj = null;   
                obj = (HttpURLConnection)url.openConnection();  //create a SSL connection object server-to-server

                ((URLConnection)obj).setDoInput(true);
                ((URLConnection)obj).setDoOutput(true);
                ((URLConnection)obj).setUseCaches(false);
//              ((URLConnection)obj).setReadTimeout(10);
                ((URLConnection)obj).setRequestProperty("Content-Type","application/x-www-form-urlencoded");
                obj.setRequestMethod("POST");
                obj.setRequestProperty("charset", "US-ASCII");
                //obj.setConnectTimeout(PropertyReader.IN_REQUEST_TIMEOUT);
                //obj.setReadTimeout(PropertyReader.IN_REQUEST_TIMEOUT);
                // Here the HTTPS request URL is created

                DataOutputStream dataoutputstream = new DataOutputStream(((URLConnection)obj).getOutputStream());
                dataoutputstream.writeBytes(request.toString());    //request
                //dataoutputstream.flush(); 
                dataoutputstream.close(); //connection closed
                BufferedReader bufferedreader = new BufferedReader(new InputStreamReader(((URLConnection)obj).getInputStream()));
                String res = "";

                                while ( (res = bufferedreader.readLine()) != null ) {

                    conresponse += res;
                }
                bufferedreader.close();

But i am getting following error :

java.io.IOException: Server returned HTTP response code: 500 for URL: http://10.105.0.120/24online/servlet/ClientRegistrationResponse?action=response&phone=919638983856&actioncode=0000
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1313)
    at cyberoam.corporate.integration.XMLSenderReceiver.sendFileData1(XMLSenderReceiver.java:70)
    at cyberoam.corporate.modes.TopupRequestThread.sendTopupRequest(TopupRequestThread.java:56)
    at cyberoam.corporate.modes.TopupRequestThread.run(TopupRequestThread.java:31)
org.jdom.input.JDOMParseException: Error on line -1: Premature end of file.
    at org.jdom.input.SAXBuilder.build(SAXBuilder.java:504)
    at cyberoam.corporate.integration.XMLProcessor.parseXML(XMLProcessor.java:392)
    at cyberoam.corporate.modes.TopupRequestThread.sendTopupRequest(TopupRequestThread.java:62)
    at cyberoam.corporate.modes.TopupRequestThread.run(TopupRequestThread.java:31)
Caused by: org.xml.sax.SAXParseException: Premature end of file.
    at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
    at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
    at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
    at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
    at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    at org.jdom.input.SAXBuilder.build(SAXBuilder.java:489)
    ... 3 more
Caused by: org.xml.sax.SAXParseException: Premature end of file.
    at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
    at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
    at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
    at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
    at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    at org.jdom.input.SAXBuilder.build(SAXBuilder.java:489)
    at cyberoam.corporate.integration.XMLProcessor.parseXML(XMLProcessor.java:392)
    at cyberoam.corporate.modes.TopupRequestThread.sendTopupRequest(TopupRequestThread.java:62)
    at cyberoam.corporate.modes.TopupRequestThread.run(TopupRequestThread.java:31)
Caused by: org.xml.sax.SAXParseException: Premature end of file.
    at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
    at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
    at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
    at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
    at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    at org.jdom.input.SAXBuilder.build(SAXBuilder.java:489)
    at cyberoam.corporate.integration.XMLProcessor.parseXML(XMLProcessor.java:392)
    at cyberoam.corporate.modes.TopupRequestThread.sendTopupRequest(TopupRequestThread.java:62)
    at cyberoam.corporate.modes.TopupRequestThread.run(TopupRequestThread.java:31)
2012-07-12 18:52:49,416 - PIPE_COMM: In Receiving Object for /usr/local/nas/pipes/raam_to_gui_pipe
******************SMPPThread constructor called*****************

What is the reason for this error ? as when i directly call URL from browser it's work perfect.

Upvotes: 0

Views: 14847

Answers (1)

rolfl
rolfl

Reputation: 17707

Is there a question?

You have sent a bad request to the server, and it is responding with an internal server error (code 500). The logical thing to do is to check your HTTP server logs (it is a 10.* IP address, so it is local to you).

Also the JDOM Exceptions are in a different thread or something.... there is no JDOM related code in the code you show, and the exception stack traces are not linked in any way to the IOException with the 500 status response. Alternatively, you are ignoring the status-500 response (IOException), and then expecting the JDOM code in that same thread to parse a (probably empty) error-response from the server (which would no doubt end in a premature end-of-file).

You need to:

  • check your server logs
  • handle all exceptions appropriately
  • potentially add some debug code to enable you to inspect the data you send to / retrieve from the server.

Upvotes: 1

Related Questions