Error Writing to Server

Error Writing to Server

I am uploading a file from one server to another server using a Java Program 'POST' method. But I am getting below exception.

java.io.IOException: Error writing to server
    at sun.net.(HttpURLConnection.java:582)
    at sun.net.(HttpURLConnection.java:594)
    at sun.net.(HttpURLConnection.java:1216)
    at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:379)
    at com.test.rest.HttpURLConnectionExample.TransferFile(HttpURLConnectionExample.java:107)
    at com.test.rest.HttpURLConnectionExample.main(HttpURLConnectionExample.java:44)

I have other method who will authenticate with server. Which will be be called from below code. When I am getting response from server, I am getting above exception. To Transfer a file to server I have written below method. My sample code is below:

public static void TransferFile(){
        String urlStr = "";
        File tempFile = new File("/home/MyPath/Workspace/Sample/virtualhaircut.mp3");
        BufferedWriter br=null;
        HttpURLConnection conn = null;
        URL url;
        try {
            url = new URL(urlStr);
            AuthenticationUser();
            conn = (HttpURLConnection) url.openConnection();
            conn.setDoOutput(true);
            conn.setRequestMethod("POST");

            conn.setRequestProperty("Content-Type", new MimetypesFileTypeMap().getContentType(tempFile.getName()));
        } catch (MalformedURLException e1) {
            System.out.println("Malformed");
            e1.printStackTrace();
        } catch (ProtocolException e) {
            System.out.println("Protocol");
            e.printStackTrace();
        } catch (IOException e) {
            System.out.println("IO");
            e.printStackTrace();
        }

        System.out.println("line 69");


        FileInputStream fis;
        OutputStream fos;


        try {
            System.out.println("line 75");

                System.out.println("line 77");
                fis = new FileInputStream(tempFile);
                fos = conn.getOutputStream();
                byte[] buf = new byte[1024 * 2];
                int len = 0;
                System.out.println("line 80");
                while ((len = fis.read(buf)) > 0) {
                    fos.write(buf, 0, len);
                    System.out.println("line 85");
                }
                System.out.println("line 87");
                buf = null;
                fos.flush();
                fos.close();
                fis.close();

        }catch (FileNotFoundException e) {
            System.out.println("");
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {

            if (conn.getResponseCode() == 200) {
                System.out.println("here");

            }
        } catch (IOException e) {
            e.printStackTrace();
        }


    }
1

1 Answer

It is possible that the error ocurred because the receiving server closed the connection, maybe because your file exceeded the size limit. Have you tested with small files?

7

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

James H. Sterling
Author

James H. Sterling

James Sterling reports on renewable energy developments, climate policy, ecological conservation, and green tech innovations around the globe.