May not be exactly right but you'll get the idea.
import com.sun.jersey.api.client.Client; import com.sun.jersey.api.client.WebResource; import com.sun.jersey.api.client.WebResource.Builder; import com.sun.jersey.api.client.filter.HTTPBasicAuthFilter; import com.sun.jersey.multipart.FormDataBodyPart; import com.sun.jersey.multipart.FormDataMultiPart; import com.sun.jersey.multipart.file.FileDataBodyPart; import javax.ws.rs.core.MediaType;
String name = "someName"; // HTTP Client final Client client = Client.create(); // Auth client.addFilter( new HTTPBasicAuthFilter( this.conf.getUser(), this.conf.getPass()) ); Builder builder = client.resource( this.adminBaseUrl + URL_PATH_DEPLOY ) // Some URL query param .queryParam("path", "/"+name) // What we're asking for. .accept(MediaType.TEXT_PLAIN_TYPE) // What we're sending in PUT body. .type(MediaType.APPLICATION_OCTET_STREAM_TYPE); // Do the request itself. final String textResponse = builder.put(String.class, form);
final File archiveFile = new File(new File(System.getProperty("java.io.tmpdir")), archiveName); // Build up the POST form to send to Tomcat final FormDataMultiPart form = new FormDataMultiPart(); form.getBodyParts().add(new FormDataBodyPart("update", "true")); form.getBodyParts().add(new FileDataBodyPart("file", archiveFile)); String name = archiveName.substring(0, archiveName.lastIndexOf(".")); this.deploymentName = name; // Some form field form.field("context", name, MediaType.TEXT_PLAIN_TYPE); // HTTP Client final Client client = Client.create(); // Auth client.addFilter( new HTTPBasicAuthFilter( this.conf.getUser(), this.conf.getPass()) ); Builder builder = client.resource( this.adminBaseUrl + URL_PATH_DEPLOY ) // What we're asking for. .accept(MediaType.TEXT_PLAIN_TYPE) // What we're sending in PUT body. .type(MediaType.MULTIPART_FORM_DATA_TYPE) // Do the request itself. .post(String.class, form);
// Export to a file so we can send it over the wire final File archiveFile = new File(new File(System.getProperty("java.io.tmpdir")), archiveName); archive.as(ZipExporter.class).exportZip(archiveFile, true);