Hi list,

I'm pretty sure I'm missing something obvious, but I just can't understand
what the root of problem is.
I try to send file from java to Tomcat6's http servlet. I need to send file
alone (and probably some parameters in request), so I don't wanna mess with
multipart libraries (commons-fileupload, httpclient). The problem is that I
can't read data from servlet's input stream - it is always empty. Here's my
code:

/////////// ON CLIENT SIDE
        URL url = new URL(address);
        HttpURLConnection connect = (HttpURLConnection)
url.openConnection();
        connect.setRequestMethod("POST");
        connect.setDoInput(true);
        connect.setDoOutput(true);
        connect.setAllowUserInteraction(false);
        connect.setUseCaches(false);
        //connect.setRequestProperty("Content-Length", "" + pack.length());
        //connect.setRequestProperty("Content-Type", "text/plain");

        OutputStream out = connect.getOutputStream();
        FileInputStream in = new FileInputStream(pack);

        IOUtils.copy(in, out);
        out.flush();
        out.close();
        in.close();

        if (connect.getResponseCode() != HttpURLConnection.HTTP_OK) {
            logObj.warn("file " + pack.getPath() + " was not transfered -
response code " +
                    connect.getResponseCode());
            return false;
        }

        logObj.info("file " + pack.getPath() + " transfered");

////////////// ON SERVER SIDE
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {
        logObj.info("Servlet started")
        logObj.info(IOUtils.toString(req.getInputStream()));
}

I see "file transfered" on client side, but nothing appears in log on server
side...

Thanks in advance,
Andrey

Reply via email to