web services - Java REST - call method after POST to REST -


i'm using java rest service file upload. file should land on server, does, move amazon s3 bucket.

the upload server fine, 2nd call method not work. assume because there timeout issue?

the code move file amazon works in app, not able working within rest project.

here method:

     @post      @path("/upload")      @consumes(mediatype.multipart_form_data)     public response uploadfile(@formdataparam("file") inputstream inputstream,                @formdataparam("file") formdatacontentdisposition file,    @formdataparam("filename") string filename){      logger log = logger.getlogger("mike");       string response = "";     file f = null;       try {        final string file_destination = "c://uploads//" + file.getfilename();        f = new file(file_destination);        outputstream outputstream = new fileoutputstream(f);        int size = 0;        byte[] bytes = new byte[1024];        while ((size = inputstream.read(bytes)) != -1) {         outputstream.write(bytes, 0, size);        }        outputstream.flush();        outputstream.close();         log.info("upload complete initial file!");        //move file amazon s3 bucket.        amazons3 s3 = new amazons3client(                 new classpathpropertiesfilecredentialsprovider());         log.info("trying put request");        putobjectrequest request = new putobjectrequest("site.address.org","/pdf/pdf_web_service/work/"+f.getname(),f);         log.info(f.getname());         log.info(f.getabsolutepath());          s3.putobject(request);         log.info("put request complete");         response = "file uploaded " + file_destination;       } catch (exception e) {        e.printstacktrace();       }           return response.status(200).entity(response).build();      } 

specifically, here part not working. not getting log info either:

//move file amazon s3 bucket. 
     amazons3 s3 = new amazons3client(               new classpathpropertiesfilecredentialsprovider());       log.info("trying put request");      putobjectrequest request = new putobjectrequest("site.address.org","/pdf/pdf_web_service/work/"+f.getname(),f);       log.info(f.getname());          log.info(f.getabsolutepath());                   s3.putobject(request);          log.info("put request complete"); 

michael,

if it's time-out issue, it's common practice use guava's listenable future chain tasks together. web sequence is:

a) client sends file

b) server responds 200 once file completes uploading.

c) once server done loading file, chain future upload s3.

chaining listenable futures common practice separate functionality , ensure time out doesn't occur breaking code , pipe-lining it.

please let me know if have questions!


Comments

Popular posts from this blog

javascript - how to protect a flash video from refresh? -

android - Associate same looper with different threads -

visual studio 2010 - Connect to informix database windows form application -